얕은 복사 코드
import produce from 'immer';
const App = () => {
const [form, setForm] = useState('')
const [data, setData] = useState({
array: [],
uselessValue: null
})
const onChange = useCallback( e =>{
setForm(
produce(form, draft=>{
draft[name]=value;
})
)
},
[form]
)
}
깊은 복사 코드
produce(form, draft=>{
draft.array.push( ... )
})
produce(form, draft=>{
draft.array.splice(draft.array...)
})
원래 형태는 produce(form, draft=>{})
useState와 합친 형태
코드
setForm(
produce(draft=>{
draft[name] = value;
})
)
setData(
produce(draft=> {
draft.array.push(info)
})
)