我已经花了几天时间试图让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]
尚未定义,但是我应该如何完成呢?也许我缺少一些非常基本的东西...
答案 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.
}
}
}