【问题标题】:Unhandled Rejection (TypeError): Cannot read property 'product' of null未处理的拒绝(TypeError):无法读取 null 的属性“产品”
【发布时间】: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


【解决方案1】:

你应该看看你的item 常量,它来自action.payload。看来它的内容可能是空的。这将使它在find 内调用item.product 导致 cannot read property 'product' of null 错误。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-05-17
    • 2019-04-07
    • 2021-11-15
    • 1970-01-01
    • 2022-11-26
    • 2019-07-19
    • 2019-06-03
    相关资源
    最近更新 更多