如何以非变异方式编写obj [var1] [var2] = val

时间:2018-12-16 21:06:31

标签: reactjs redux

我正在设计一个redux减速器,遇到了必须添加嵌套表单数据的情况。我无法想到这种情况。

包含突变的陈述是:

state[var1][var2] = val

我们如何以非变异的方式编写此代码,以便可以在reducer中使用。

1 个答案:

答案 0 :(得分:1)

只需执行以下操作:

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;
})