강의

멘토링

로드맵

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

NOAH님의 프로필 이미지
NOAH

작성한 질문수

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

immer 도입하기

Immer 관련 질문

작성

·

162

0

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

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

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

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

퀴즈

43%나 틀려요. 한번 도전해보세요!

Redux Thunk의 주된 역할은 무엇일까요?

상태 변화 로깅하기

비동기 액션 처리 돕기

액션 타입 상수화 강제하기

리듀서 불변성 자동으로 관리하기

답변 1

1

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

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

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

NOAH님의 프로필 이미지
NOAH

작성한 질문수

질문하기