const INITIAL_STATE = {
editedProduct: {},
};
reducer.js
case ADD_SWATCH:
const typeSwatch = action.payload;
return merge(state, {
editedProduct: {
...state.editedProduct,
[typeSwatch]: [
...state.editedProduct[typeSwatch],
{
dimSwtNo: state.editedProduct[typeSwatch].length
? state.editedProduct[typeSwatch].length + 1
: 1,
},
],
},
});
我收到一个错误:
可能的未处理的承诺拒绝(标识:0):
TypeError:散布不可迭代实例的无效尝试
问题是在这条线
...state.editedProduct[typeSwatch],
引用尚未初始化的属性。
我该如何解决这个问题?
最佳答案
如错误提示所示,您不能传播null
/ undefined
值。这里最简单的方法是在尚未设置属性的情况下使用默认值,例如
...(state.editedProduct[typeSwatch] || [])
由于您在几个地方使用了该值,因此有必要进一步创建变量。