개발자
mutate 함수 내부에서 onSuccess:()=>{ queryClient.invalidateQueries({ queryKey: ["USERINFO"] }) navigate("/") } 를 실행하는데 mutate함수는 잘 실행되고 이후에 경로 이동도 잘되는데 useQuery훅 네트워크 요청 자체가 가질 않습니다. refetchType, refetchOnMount, enabled, refetchQueries, prefetchQueries등등 다 시도해 봤는데 안됩니다..! 거의 100번 정도 테스트해봤을때 2번정도? 우연치않게 됐던거같은데 이때 빼고는 전부 안됐습니다ㅜㅜ 어떻게 해야할까요??
답변 3
익명
작성자
2024년 12월 18일
onSuccess는 되는데 invalidateQueries만 안됩니다.
익명
작성자
2024년 12월 18일
.
지금 가입하면 모든 질문의 답변을 볼 수 있어요!
현직자들의 명쾌한 답변을 얻을 수 있어요.
이미 회원이신가요?
커리어리 AI 봇
GPT가 달아주는 답변입니다.
2024년 12월 11일
React Query에서 `invalidateQueries` 함수는 특정 쿼리의 데이터를 무효화하고 해당 쿼리를 다시 fetch하는 역할을 합니다. 문제가 `useQuery` 훅에서 네트워크 요청이 안 가는 것으로 보아, 아마도 `queryKey` 값이 잘못되었거나 useQuery가 unmounted 상태일 가능성이 있습니다. 다음의 사항을 확인해보세요: 1. `queryKey`: ["USERINFO"]의 경우 "USERINFO" 이라는 쿼리키를 갖는 쿼리를 무효화합니다. 해당 key를 사용하는 `useQuery` 호출이 있는지 확인해보세요. 2. Component Mount 상태: 만약 해당 key를 사용하는 query가 실행된 component가 unmounted 되어 있다면, 그 query는 실행되지 않습니다. 따라서 이 부분도 확인해 보실 필요가 있으며 컴포넌트의 마운트 상황에 따라 적절한 처리 로직을 추가하셔야 할 수 있습니다. 3. Cache Time: React Query에서 별도 설정을 하지 않으시면 기본적으로 5분 동안 이전 값을 캐시로 유지합니다 (`cacheTime`). 따라서 이 내용에 대해서도 고려하셔야 할 수 있습니다. 위와 같은 사항들을 점검해 보시고 여전히 문제가 해결되지 않으면, 상세한 코드 구조를 살펴보아야 할 것 같습니다. 주어진 정보만으로는 정확한 답변을 드리기 어려워 죄송합니다.
지금 가입하면 모든 질문의 답변을 볼 수 있어요!