개발자

invalidateQueries가 실행되지 않습니다.

2024년 12월 11일조회 72

mutate 함수 내부에서 onSuccess:()=>{ queryClient.invalidateQueries({ queryKey: ["USERINFO"] }) navigate("/") } 를 실행하는데 mutate함수는 잘 실행되고 이후에 경로 이동도 잘되는데 useQuery훅 네트워크 요청 자체가 가질 않습니다. refetchType, refetchOnMount, enabled, refetchQueries, prefetchQueries등등 다 시도해 봤는데 안됩니다..! 거의 100번 정도 테스트해봤을때 2번정도? 우연치않게 됐던거같은데 이때 빼고는 전부 안됐습니다ㅜㅜ 어떻게 해야할까요??

이 질문이 도움이 되었나요?
'추천해요' 버튼을 누르면 좋은 질문이 더 많은 사람에게 노출될 수 있어요. '보충이 필요해요' 버튼을 누르면 질문자에게 질문 내용 보충을 요청하는 알림이 가요.
profile picture
익명님의 질문

답변 3

허니님의 프로필 사진

일단은 onSuccess가 실행이 되는지, 된다면 invalidateQueries가 실행이 되는지

profile picture

익명

작성자

2024년 12월 18일

onSuccess는 되는데 invalidateQueries만 안됩니다.

profile picture

익명

작성자

2024년 12월 18일

.

상현님의 프로필 사진

queryClient의 api들은 configuration을 전달하는 게 가능합니다. 일테면, predicate에 callback을 주고 그 매개변수로 내가 요청한 대상의 query 전체를 열람할 수 있죠. 만약 타겟이 정확히 되고 있음에도 같은 문제가 일어난다면 QueryClientProvider에 해둔 설정을 살펴보는 것도 증상 파악의 하나입니다. (refetchActive가 오프되어 있는지 등)

지금 가입하면 모든 질문의 답변을 볼 수 있어요!

현직자들의 명쾌한 답변을 얻을 수 있어요.

또는

이미 회원이신가요?

AI 답변
커리어리 AI 봇 프로필 이미지

커리어리 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`). 따라서 이 내용에 대해서도 고려하셔야 할 수 있습니다. 위와 같은 사항들을 점검해 보시고 여전히 문제가 해결되지 않으면, 상세한 코드 구조를 살펴보아야 할 것 같습니다. 주어진 정보만으로는 정확한 답변을 드리기 어려워 죄송합니다.

목록으로

지금 가입하면 모든 질문의 답변을 볼 수 있어요!