강의

멘토링

커뮤니티

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

NOAH님의 프로필 이미지
NOAH

작성한 질문수

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

immer 도입하기

Immer 관련 질문

작성

·

159

0

Immer 라이브러리로 쉽게 React state 불변성 지키기 :: Be Dev (tistory.com)

Immer 관련으로 조금 더 공부하다가 이글을 보았는데요. 마지막에 setTodo에서 produce만으로 state를 업데이트 하는 부분이 이해가 안되서 질문 드립니다.

함수형으로 setTodo를 해준것은 useCallback의 dependency 값을 넣어주지 않기 위함인건 이해했는데요. 굳이 dependency를 넣지 않을거면 useCallback을 사용 할 필요가 없지 않을까요? 이렇게 해본적이 없는데 이러한 글이 있어서 궁금해서 여쭤보네요.

그리고 한 가지 더 setTodo안에 return 형 함수를 넣으면 자동으로 prevState의 값이 draft 안으로 들어가는걸까요? 갑자기 헷갈려서.. 여쭤봅니다

답변 1

1

제로초(조현영)님의 프로필 이미지
제로초(조현영)
지식공유자

useCallback은 immer와 상관 없이 함수라면 감싸야 합니다. 무조건은 아닌데 함수를  jsx props로 넘겨주는 경우라면 반드시입니다.

produce(draft => {}) 함수의 리턴값이 (prevState) => {} 입니다. 그래서 최종적으로는 setTodo((prevState) => {}) 꼴이 됩니다.

NOAH님의 프로필 이미지
NOAH

작성한 질문수

질문하기