인프런 커뮤니티 질문&답변
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) => {}) 꼴이 됩니다.




