无法使用reducer访问我的数据存储中的值

时间:2020-11-07 15:48:18

标签: reactjs redux

查询数据库中的数据数组后,我正在调度操作:

dispatch({
                type: "SET_EDIT_PRODUCTS",
                item: [
                  {
                    name: productData.name,
                    price: productData.price,
                    description: productData.description,
                    quantity: productData.description,
                  },
                ],
              });

以下是数据在我的化简器中的存储方式:

export const initialState = {
  editProductBasket: [],
 
};

这是我的案件的结构:

case "SET_EDIT_PRODUCT":
      return {
        ...state,
        editProductBasket: [...state.editProductBasket, action.item],
      };

现在,当我尝试访问name中的editProductBasket属性时,出现以下错误: TypeError: Cannot read property 'name' of undefined

我认为当我尝试访问该属性时,我可能不正确地破坏了数组:

const [
    {
      editProductBasket: [{ name }],
    },
    dispatch,
  ] = useStateValue();
return (
    <div className="phone__mockup">
     {name}
    </div>
  );

1 个答案:

答案 0 :(得分:0)

您将变得不确定,因为在构造action.item并将其设置在reducer中的方式上存在错误。
除了执行editProductBasket: [...state.editProductBasket, action.item],
尝试一下:
editProductBasket: [...state.editProductBasket, ...action.item],

您不会破坏来自action.item的阵列。因此,将在editProductBasket数组中创建一个数组,而不是创建一个产品详细信息的新对象。