查询数据库中的数据数组后,我正在调度操作:
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>
);
答案 0 :(得分:0)
您将变得不确定,因为在构造action.item并将其设置在reducer中的方式上存在错误。
除了执行editProductBasket: [...state.editProductBasket, action.item],
,
尝试一下:
editProductBasket: [...state.editProductBasket, ...action.item],
。
您不会破坏来自action.item
的阵列。因此,将在editProductBasket
数组中创建一个数组,而不是创建一个产品详细信息的新对象。