在Redux Reducer中添加嵌套属性

时间:2020-08-15 15:23:52

标签: reactjs redux

我已经花了几天时间试图让Redux可以与我的Reactjs项目一起使用。我正在研究reducer,并尝试将嵌套属性添加到state中。为此,我在不同级别上使用了扩展运算符。问题在于,这个化简器管理的状态片最初是空的,因此我遇到了以下问题……以我要尝试的操作为例:

var foo = {}; // Initially the state slice is an empty object.

var bar = {...foo,
            1: {
                ...foo[1],
                2: {
                    ...foo[1][2],
                    baz: 100 // New property I'm trying to add.
                }
            }
};

console.log(bar);

(属性键1和2是在我的实际应用中提供给reducer的两个变量)

我运行上面的代码,它将产生错误,在第Cannot read property '2' of undefined行显示...foo[1][2],。好的,foo[1][2]尚未定义,但是我应该如何完成呢?也许我缺少一些非常基本的东西...

1 个答案:

答案 0 :(得分:1)

类似的例子适用于您的示例,但看起来很hacky。

bar = {
  ...foo,
   1: {    
     ...foo[1] ? foo[1] : {},

     2: {
       ...foo[1] && foo[1][2] ? foo[1][2] : {},
       baz: 100 // New property I'm trying to add.
     }
  }
}