我在设计一个redux reducer时遇到了必须附加嵌套表单数据的情况。我想不出什么情况。
包括突变的声明是:
state[var1][var2] = val
我们如何用非突变的方式来写这个,这样它就可以在reducer中使用。
只需执行以下操作:
return {
...state,
var1: {
...state.var1,
var2: val
}
};
或者您可以使用immer
:
import produce from "immer";
let val = 5;
const state = { var1: { var2: 3 } };
const nextState = produce(state, draftState => {
draftState.var2 = val;
})