inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

[리뉴얼] React로 NodeBird SNS 만들기

react-query 관련 질문입니다.

494

윤동호

작성한 질문수 10

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 소스입니다.

 

 

express nodejs redux react Next.js

답변 1

0

제로초(조현영)

1. 저부분은 기존 api를 재사용한 겁니다. 데이터 수정하면 알아서 useQuery가 주기적으로 갱신해주니까요. useMutation으로 해도 됩니다.

2. 네트워크탭에서 데이터가 들어온건데 react-query가 못 받은건지, 아니면 처음부터 네트워크에서 빈 배열로 들어온건지를 확인하세요. react-query devtools랑 같이 써서요.

0

윤동호

답변 감사합니다 !

1번처럼 사용하게 되면 useQuery가 주기적으로 갱신해주긴 하지만 변경 후 useQuery가 새로 갱신할 때까지는  바로 화면에 적용되지 않는 것처럼 보여서요. remove 같은 경우에도 removePostAPI를 axios로 바로 호출하고 response 받아주셨는데 이것도 useInfiniteQuery가 갱신하기 전까지는 화면에 적용이 안되는 것 같아서요. 혹시 바로 갱신되도록 처리를 해주신건데 제가 빼먹은 부분이 있는 걸까요? 아니면 바로 적용하려면 useMutation을 사용하여 onSuccess 에 refetchQueries 사용해주는 것이 맞을까요...

2번에서 답변해주신것처럼 react-query-devtool과 개발자 도구 둘 다 확인해보니 네트워크에서 response로 올 때 빈 배열로 오는거 같습니다.

api 호출 시 req.query를 찍었을 때 정상적으로 limit이 넘어오는 걸 보아 backend에서 getFollowers 불러올 때 문제가 있는거 같아서 확인해보려고 합니다.

 

 

 

0

제로초(조현영)

네 refetchQueries 날리시는 게 좋습니다.

0

윤동호

넵 답변 감사합니다 !

넥스트 버젼 질문

0

91

2

로그인시 401 Unauthorized 오류가 뜹니다

0

104

1

무한 스크롤 중 스크롤 튐 현상

0

199

1

특정 페이지 접근을 막고 싶을 때

0

117

2

createGlobalStyle의 위치와 영향범위

0

104

2

인라인 스타일 리렌더링 관련

0

99

2

vsc 에서 npm init 설치시 오류

0

159

2

nextjs 15버전 사용 가능할까요?

0

166

1

화면 새로고침 문의

0

129

1

RTK에서 draft, state 차이가 있나요?

0

164

2

Next 14 사용해도 될까요?

0

455

1

next, node 버전 / 폴더 구조 질문 드립니다.

0

360

1

url 오류 질문있습니다

0

218

1

ssh xxxxx로 우분투에 들어가려니까 port 22: Connection timed out

0

394

1

sudo certbot --nginx 에러

0

1298

2

Minified React error 콘솔에러 (hydrate)

0

483

1

카카오 공유했을 때 이전에 작성했던 글이 나오는 버그

0

257

1

프론트서버 배포 후 EADDRINUSE에러 발생

0

341

1

npm run build 에러

0

526

1

front 서버 npm run build 중에 발생한 에러들

0

399

1

서버 실행하고 브라우저로 들어갔을때 404에러

0

351

2

css 서버사이드 랜더링이 적용되지 않아서 문의 드립니다.

0

291

1

팔로워 3명씩 불러오고 데이터 합쳐주는걸로 바꾸고 서버요청을 무한으로하고있습니다.

0

253

2

해시태그 검색에서 throttle에 관해 질문있습니다.

0

207

1