Как сделать get запрос через React query с несколькими ключами по клику на кнопку?

есть кастомный хук для запроса через React Query:

export const useDuration = (userLn: number, userLg: number, pointLn: number, pointLg: number) => {
	const {isLoading, data: duration, error, refetch} = useQuery(
		["get duration", {userLn, userLg, pointLn, pointLg}],
		() => GetDuration.getByCoordinates(userLn, userLg, pointLn, pointLg),
		{
			enabled: false
		}
	);
	return {isLoading, duration, error, refetch};
};


В него, как видно, надо передавать 4 параметра (userLn, userLg, pointLn, pointLg) и отрабатывать по клику на кнопку. В документации нашё только через передачу refetch() в функцию onClick, но туда нельзя передать параметры!

запрос типа:
axios.get(`https://randomUrl/test/${userLn},${userLg};${pointLn},${pointLg}`)


Вопрос - как сделать запрос с параметрами по клику на кнопку через React Query?
  • Вопрос задан
  • 503 просмотра
Решения вопроса 1
Alexandroppolus
@Alexandroppolus
кодир
export const useDuration = (userLn: number, userLg: number, pointLn: number, pointLg: number) => {
  const [enabled, setEnabled] = useState(false);

  const {isLoading, data: duration, error, refetch} = useQuery(
    ["get duration", {userLn, userLg, pointLn, pointLg}],
    () => GetDuration.getByCoordinates(userLn, userLg, pointLn, pointLg),
    {
      enabled
    }
  );

  return {isLoading, duration, error, refetch, setEnabled};
};

......
const {..., setEnabled} = useDuration(...);
......
...onClick={() => setEnabled(true)}
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы