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

김태균님의 프로필 이미지
김태균

작성한 질문수

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

10.4) useCallback과 함수 재생성 방지

일기 추가 시 DiaryEditor 리렌더링 질문

작성

·

282

·

수정됨

0

안녕하세요 강사님

강의를 듣고 저는 React.memo로 DiaryEditor를 고차 컴포넌트를 만들어 동일한 prop을 받았을 때 리렌더링 되지 않도록 해주고 onCreate 함수를 useCallback을 통해 메모리제이션 하여 같은 함수를 DiaryEditor에 prop으로 전달한다고 이해했습니다

그래서 제가 생각했을 땐 일기를 새로 저장하거나, 삭제, 수정하는 작업 중에는 DiaryEditor가 아예 리렌더링이 되지 않아야 된다고 생각했는데 강의 14분 17초에서도 그렇고 제가 직접 짠 코드에서도 일기를 새로 저장할 때 리렌더링이 되는데 제가 이해한게 잘못 된건가 싶어 질문 드립니다!

답변 3

2

김태균님의 프로필 이미지
김태균
질문자

혹시 저장 후에 State를 초기화하는 과정에서 State가 변경되어 리렌더링 되는걸까요?

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

넵 맞습니다!

1

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

안녕하세요 이정환입니다.

새로운 일기를 저장할 때 DiaryEditor 컴포넌트에서는 현재 입력된 값을 비우기 위해 자체적으로 STate를 초기화 하고 있습니다. 따라서 이때 State가 업데이트되기 때문에 리렌더링이 발생하는 것 입니다.

0

저도 태균님과 같은 건으로 질문 할 일이 있었는데..^^
두 분께 감사드립니다.

김태균님의 프로필 이미지
김태균

작성한 질문수

질문하기