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] || [])


由于您在几个地方使用了该值,因此有必要进一步创建变量。

10-06 04:25