React Redux:如何将 属性 添加到 reducer 中的空对象

React Redux: How to add a property to an empty object in the reducer

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

我收到一个错误: 可能未处理的承诺拒绝(id:0): 类型错误:传播不可迭代实例的无效尝试

问题出在这一行

...state.editedProduct[typeSwatch],

指的是一个属性还没有初始化的

我该如何解决这个问题?

如错误所示,您不能传播 null / undefined 值。这里最简单的方法是在尚未设置 属性 的情况下使用默认值,例如

...(state.editedProduct[typeSwatch] || [])

由于您在几个地方使用了这个值,因此在更上层创建一个变量是有意义的。