무한스크롤 구현 오류
467
投稿した質問数 5
안녕하세요. 선생님 무한스크롤이 계속 만들어져서 질문드려요
위 사진에는 댓글이 2개 달린 상태입니다. 그런데
스크롤을 내리면서 2개였던게 계속 복사되어 만들어지는 상태입니다.
이런식으로 초기 댓글 갯수가 반복해서 늘어나는 것 같아요.
코드를 보고도 오류를 찾기 힘들어 질문 드려요!
참고로, 이전에 비슷한 질문에 확인 해야 할 사항이 있어서 체크해보았습니다.
nextconfig.json에서 reactStrictmode를 false로 바꿔보시고 서버를 껐다 다시 켜주세요!
>> 바꾸고 해도 되지 않는 것 같습니다.
무한스크롤을 제거한 후 댓글을 작성해 보고 정상적으로 작성이 되는지 알려주세요.
>> 무한스크롤 컴포넌트 삭제 시 다른 부분들은 원활하게 작동합니다.
또 다른 자료가 필요하시면 말씀해주세요!
긴 질문 읽어주셔서 감사합니다!!
回答 2
0
혹시 비슷한 문제로 공부하다가 찾아보시는 분이 계실 듯하여 댓글을 답니다(그게 바로 저입니당ㅜㅜ ). 제 경우에는 쿼리문의 매개변수에 page가 빠져서 질문자님과 비슷한 상황이 발생했어요. 쿼리문을 수정했더니 예상했던 대로 작동합니다!!
0
안녕하세요! 태연님!
먼저 기존의 해결책을 검색하여 미리 시도하셨던 부분! 개발자로서 굉장히 좋은 태도인 것 같아서 보기 좋네요!^^
이전에 기존의 시도했던 방법들에 대해 간략히 첨언하자면,
=================================================================
next.config.json에서 reactStrictmode를 false로 바꿔보시고 서버를 껐다 다시 켜주세요!
=> 해당 부분의 의미는, react가 18버전으로 업데이트 되면서 strictMode라는 것이 추가되었는데요!
본 기능은 일부러 2번씩 렌더링해줘서 리렌더시 발생되는 실수들을 사전 방지하고자 만들어진 기능이랍니다!
(물론 실서비스에서는 1번만 렌더링 됩니다!^^)
(또한, 우리는 react-17 버전을 사용하고 있으므로 해당 사항이 아닐 수 있겠네요!)
무한스크롤을 제거한 후 댓글을 작성해 보고 정상적으로 작성이 되는지 알려주세요.
=> 무한스크롤을 제거 후에 정상적으로 작동된 것을 보니, 무한스크롤에 문제가 있는 것이 확실하네요!
=================================================================
해당 에러 메시지를 읽어보니 "same key" 라는 단어가 많이 등장하고 있는데, map으로 데이터를 그릴 때, key={el._id}가 같은 데이터가 중복해서 그려지기 때문에 발생한 것 같아요!
그렇다면, 왜 중복되는지를 확인해 봐야할 것 같은데요!
최초에 데이터를 불러왔을 때 댓글 2개를 가져왔는데, 무한스크롤 라이브러리에 의해 데이터를 다시 한 번 요청했을 때 불러온 댓글이 최초에 불러온 댓글 2개와 동일한 경우라고 추측해 볼 수 있겠어요!
따라서, 먼저 확인해 보아야 할 부분은 Network 탭에서 동일한 요청(또는 동일한 결과를 받는 페이지에 대한 요청)을 가진 graphql 쿼리가 2개 이상인지 확인해 보세요!
만약 그렇다면, 시작하자마자 동시에 쿼리가 여러번 나가는 것을 의심해 볼 수 있을 것 같은데요!
댓글이 다 받아와지면 무한스크롤 컴포넌트를 그리도록 조건부 렌더링 등을 사용해 보시는 등 다양한 시도가 필요할 것 같아요!
아래는 간단한 예시입니다!
props.data?.fetchBoardComments?.length !== 0 && (
<InfiniteScroll>
...
</InfiniteScroll>
)
위 문제로 해결되지 않는다면, onLoadMore에서 언제 어떤 시점에 동일한 요청이 왜 2번 나가는지 console.log를 통해 확인해 봐야할 것 같아요!
fetchBoardsOfMine, fetchBoardsCountOfMine 에러 문의드립니다
0
36
1
댓글 기능 구현 중 질문드립니다.
0
66
1
쿠폰코드 발급
0
128
2
example 서버 플레이그라운드, API 접속 모두 안됩니다.
0
86
2
문의드립니다!! ㅠㅠ
0
101
2
graphql 백엔드 서버가 포폴용 빼곤 접속이 안됩니다.
0
76
2
_app.js 작성 이후로 에러가 발생하네요
0
93
2
학습자료
0
69
2
학습자료가 안열립니다.
0
48
2
플레이 그라운드 퀴즈 문제 질문이 있습니다.
0
59
0
기존강의 구매자, 업데이트 끝인가요?
0
108
3
업데이트 버전 수강
0
88
2
완벽한 프론트엔드
0
136
2
나만의 쇼핑몰 샘플 페이지 접속 확인부탁드립니다.
0
81
1
graphql 접속이 안됩니다.
0
100
2
const, let 사용 질문 드립니다.
0
70
2
싸이월드 만들기 1탄 피드백 부탁드립니다.
0
122
2
회원가입 과제 피드백 부탁드립니다.
0
79
2
styled.span / styled.input "CSS 자동완성"
0
47
1
쿠폰 발급 관련
0
166
2
서버 502 error
0
246
2
쿠폰 다시 부탁드려도 될가여?
0
140
2
a태그 패딩했을때 왜 크기가 줄어들지 않고 늘어나나요
0
183
2
2분 44초 질문
0
131
3

