import { useRef } from 'react'; import { useQuery } from 'react-query'; import axios from 'axios'; const fetchData = async (param1, param2) => { const { data } = await axios.get(`/api/data?param1=${param1}¶m2=${param2}`); return data; }; export const useDataQuery = (initialParam1, initialParam2) => { const param1Ref = useRef(initialParam1); const param2Ref = useRef(initialParam2); const { data, error, isLoading, refetch } = useQuery( ['dataKey', param1Ref.current, param2Ref.current], () => fetchData(param1Ref.current, param2Ref.current), { enabled: false, // Başlangıçta otomatik olarak fetch etmesini engeller } ); const updateParamsAndRefetch = (newParam1, newParam2) => { param1Ref.current = newParam1; param2Ref.current = newParam2; refetch(); }; return { data, error, isLoading, updateParamsAndRefetch }; };