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' }