【发布时间】:2021-09-06 11:10:10
【问题描述】:
运行代码时出错:
export const cartReducer = (state = {cartItems:[]}, action) => {
switch (action.type){
case CART_ADD_ITEM:
const item = action.payload;
const existItem = state.cartItems.find((x) => x.product === item.product );
if(existItem){
return{
...state,
cartItems: state.cartItems.map((x)=>
x.product === existItem.product ? item:x),
};
}else{
return{...state, cartItems:[...state.cartItems, item]};
}
default:
return state;
}
};
export const addToCart = (productId, qty) =>async (dispatch, getState) =>{
const {data} = await Axios.get(`/api/products/${productId}`);
dispatch({
type: CART_ADD_ITEM,
payload: {
name: data.name,
image: data.image,
price: data.price,
countInStock: data.countInStock,
product: data._id,
qty,
},
});
localStorage.setItem('cartItems', JSON.stringify(getState().cart.cartItems));
};
【问题讨论】:
-
您没有在任何地方定义 x。看来您的 X 应该是从 exios 获得的 data._id
标签: javascript node.js reactjs redux react-hooks