더북(TheBook)

12.1.5 useState의 함수형 업데이트와 immer 함께 쓰기

11장에서 useState의 함수형 업데이트에 대해 알아보았습니다.

예시 코드

const [number, setNumber] = useState(0);
// prevNumbers 현재 number 값을 가리킵니다.
const onIncrease = useCallback(
  () => setNumber(prevNumber => prevNumber + 1),
  [],
);

 

immer에서 제공하는 produce 함수를 호출할 때, 첫 번째 파라미터가 함수 형태라면 업데이트 함수를 반환합니다.

예시 코드

const update = (draft => {
  draft.value = 2;
});
const originalState = {
  value: 1,
  foo: 'bar',
};
const nextState = update(originalState);
console.log(nextState); // { value: 2, foo: 'bar' }

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.