seonGu.log
로그인
seonGu.log
로그인
아무도 안쓸거같은 rtk-query로 무한 스크롤시 중복렌더링을 방지해보자
대프리카생존자
·
2023년 10월 26일
팔로우
1
RTK Query
React
1
1. 현재상황 🤯
무한 스크롤 구현을 IntersectionObserver를 활용함
react-query에서는 무한스크롤을 쉽게 구현할 수 있다고 하는데 rtk query는 안됨
rtk query에서 get은 내가 원할때 실행시킬 수 있는것이 아니라 자동실행
공식문서를 보니 merge를 이용해서 캐싱시키고, 새로운 데이터를 옆에 붙여넣을 수 있다는 정보 획득
forceRefetch 함수를통해 어느정도 내가 원하는 시점에 다시 데이터를 refetch할 수 있다는 정보 획득
구현
테스트
페이지이동하지않고 무한스크롤 테스트시 정상작동
무한스크롤하여 끝가지 내린후 다른페이지 이동후 다시 돌아왔을때 중복 렌더링 이슈 발생(영상에서 코트입은 사진 아래 컨텐츠까지가 원래 마지막 data임)
주석은 안봐도됨
2. 해결노력💻
에러를 보니 같은 id가 렌더링 되었다고 알림
서버측에서 총 페이지 개수 계산후 client에 받아와서 마지막 페이지 렌더링시 더 이상 observe div는 숨김처리
위에 방법으로 해결되지않아 훅마다 마지막페이지시 함수실행을 종료하는 코드작성
3. 정답😁
중복렌더링을 하는것이 문제면 서버에서 어떻게 받아오든 클라이언트단에서 unique한 id를 통해서 중복 제거를 하면된다.
모든 데이터를 합친후
해당 데이터 배열을 filter로 순회하며
중복되지 않는 데이터만 findIndex로찾아서 새로운 배열을 만드는방식으로 해결했다
대프리카생존자
`${n}번의 고비를 넘긴 기록`
팔로우
이전 포스트
채팅기능구현은 생각보다 힘들다..
다음 포스트
any타입을 구체화시키며..
0개의 댓글
댓글 작성