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

我为我的购物车做了一个数组,其中的产品有标签、价格、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
        }

    }

解决方案:

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

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

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

if (!cartItems[product.tag]) {
    cartItems[product.tag] = product;
}

给TA打赏
共{{data.count}}人
人已打赏
未分类

PowerShell 7的 "Get-Package "命令没有返回任何结果。PowerShell 5 返回同一台计算机上的软件包列表。

2022-9-13 15:46:39

未分类

如何在Laravel中获取每个集合的最后一个数据?

2022-9-13 15:46:41

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索