Written on
·
457
0
너무 자주 질문드리는거 같아서 죄송스럽네요. 항상 친절하신 답변 감사드립니다.
react-query 관련하여 질문드립니다.
NicknameEditForm.js 에서 nickname 변경할 때 axios.patch를 사용하기 때문에
저는 useMutation 사용하였는데 제로초님께서는 useQuery를 사용하셨더라구요.
질문1. useMutation 대신 useQuery를 사용하신 이유가 있으신가요?
( C,U,D 의 경우에는 useMutation을 사용한다고 알고 있어서요.. )
질문2. useQuery를 사용하게 되면 loadMyInfoAPI를 다시 한 번 호출하는 텀 동안에는 화면에서
UserProfile에서는 nickname이 렌더링이 안되지 않나요?
추가로 현재 followers와 followings를 불러오는 profile.js 부분 하고 있는데요..
useInfiniteQuery를 사용하여 똑같이 구현해보았습니다.
이 때 더보기 버튼을 클릭하면 req.query로 { page: 1 }은 들어가는 것이 확인되었고 getNextPageParam에서 pages를
찍어보면 배열이 하나 더 들어온 것을 확인할 수 있는데 빈 배열이 와서 추가적인 followers를 불러오지는 않더라구요..
이유를 모르겠습니다 ㅠㅠ (총 followers는 5명 입니다.)
API 소스입니다.
답변 감사합니다 !
1번처럼 사용하게 되면 useQuery가 주기적으로 갱신해주긴 하지만 변경 후 useQuery가 새로 갱신할 때까지는 바로 화면에 적용되지 않는 것처럼 보여서요. remove 같은 경우에도 removePostAPI를 axios로 바로 호출하고 response 받아주셨는데 이것도 useInfiniteQuery가 갱신하기 전까지는 화면에 적용이 안되는 것 같아서요. 혹시 바로 갱신되도록 처리를 해주신건데 제가 빼먹은 부분이 있는 걸까요? 아니면 바로 적용하려면 useMutation을 사용하여 onSuccess 에 refetchQueries 사용해주는 것이 맞을까요...
2번에서 답변해주신것처럼 react-query-devtool과 개발자 도구 둘 다 확인해보니 네트워크에서 response로 올 때 빈 배열로 오는거 같습니다.
api 호출 시 req.query를 찍었을 때 정상적으로 limit이 넘어오는 걸 보아 backend에서 getFollowers 불러올 때 문제가 있는거 같아서 확인해보려고 합니다.