main.js:114 未捕获的TypeError.Cannot设置未定义的'incart'属性。不能设置未定义的属性'incart'。

问题描述 投票:-2回答:1

我为我的购物车做了一个数组,其中的产品有标签、价格、incart、名称,我想用下面的代码来改变它们。

      function setItems(product)
{
    let cartItems = localStorage.getItem('productsInCart');
    cartItems = JSON.parse(cartItems);
    console.log("My cartItems are", cartItems);

    if (cartItems != null)
    {
        if (cartItems[product.tag] == undefined)
        {
            cartItems = 
            {
                ...cartItems,
                [product.tag]: product 
            }
        }

        cartItems[product.tag].incart += 1;
    }
    else 
    {
        product.incart = 1;
        cartItems = 
        {
        [product.tag]: product
        }

    }
javascript arrays shopping-cart
1个回答
0
投票

product.tag可能没有定义,请检查你调用setItems()的地方。

if (cartItems[product.tag] == undefined) {
    cartItems = {
        ...cartItems,
        [product.tag]: product
    }
}

为了更好的代码,请改成这样

if (!cartItems[product.tag]) {
    cartItems[product.tag] = product;
}
© www.soinside.com 2019 - 2024. All rights reserved.