说我在redux中有状态
const initialState = {
age: 0,
title: undefined,
body: undefined,
author: undefined
}
我想用从后端获取的newState更新它,它具有完全相同的键(年龄,标题,正文,作者),因此为了使其不可变,我使用了散布运算符
const updateState = (state, newState) => {
return {...state, ...newState}
}
问题是此函数运行良好,但是如果主体是对象并且其中嵌套了对象,该怎么办。我想做一个可以重用的功能。我不想一个接一个地手动更新
我遇到了Immer,但仍然不知道如何制作函数updateState(不是手动逐个更新键)。你能告诉我怎么做吗?
答案 0 :(得分:0)
const updateState = produce((draft, action) => {
Object.assign(draft, action);
})
或
const updateState = produce((draft, action) => {
return {...draft, ...action}
})
在任何一种情况下,具有immer的想法是返回新状态或直接更改草稿对象,但绝不能两者都做。