인프런 커뮤니티 질문&답변

토르테님의 프로필 이미지
토르테

작성한 질문수

[2024] 한입 크기로 잘라 먹는 리액트(React.js) : 기초부터 실전까지

11.3) Context 분리하기

useCallback이 적용되지 않습니다..

작성

·

242

0

안녕하세요. 강의를 따라서 차근차근 진행해 봤는데,

어느부분이 잘못된 것인지 useCallback이 적용되지 않습니다.

useCallback을 onRemove와 onEdit파일에 적용했는데도 일기 목록을 삭제하면 삭제한 일기 다음 id 부분부터 또 전부 재 랜더링 됩니다. (예를 들어 4번 일기를 삭제하면 5번 부터 19번까지 재 랜더링됩니다)

강의 소스코드를 비교해보려고 했는데 이 강좌부분은 소스코드 링크가 누락되어있는지 보이지가 않네요.. 강의를 2번 3번 돌려봤지만 잘못된 부분이 무엇인지 찾기가 힘들어 질문 남김니다.

해당부분 작성한 전체코드가 업로드된 깃 Repository주소 남깁니다

https://github.com/minsumim/question.git

 

답변 1

2

이정환 Winterlood님의 프로필 이미지
이정환 Winterlood
지식공유자

안녕하세요

이정환입니다.

 

https://github.com/minsumim/question/blob/main/src/DiaryList.js

DiaryList.js를 보면 Map메서드를 이용해 일기를 렌더링 할 때 인덱스를 key로 활용하고 계십니다.

강의에서는 dataId 레퍼런스 객체를 생성하여 진행 했었기 때문에 이부분에서 차이가 생깁니다.

일기 하나가 삭제되면 나머지 일기 아이템들의 key값도 다 달라지기 때문에 이런 문제가 발생하는 것 입니다.

토르테님의 프로필 이미지
토르테
질문자

아하 키값이 문제였군요 정말 감사합니다 빠르게 답변해주셔서 더더 감사해요 ㅜㅜ 이제 시원한 마음으로 다음강의로 넘어가겠습니다

이정환 Winterlood님의 프로필 이미지
이정환 Winterlood
지식공유자

해결 되셨다니 다행입니다 😃

질문을 해결 상태로 바꿔주시면 감사하겠습니다.

토르테님의 프로필 이미지
토르테

작성한 질문수

질문하기