无法读取类别购物车中未定义的属性'slice'

问题描述 投票:0回答:2

我在cart的某个类上有问题,我必须在工作中使用它。这是此类的代码:

class Cart {
  constructor() {
    this.key = "IT_SPA_CART";

    if (!this.exists()) {
      this.setItSpaCart([]);
    }
  }

  get() {
    const cookies = document.cookie.split(";");
    return cookies.find(cookie => cookie.startsWith(this.key));
  }

  exists() {
    return this.get() !== undefined;
  }

  getItSpaCart() {
    const cookieValue = this.get().slice(12);
    const parsedValue = JSON.parse(cookieValue);

    return parsedValue;
  }

  setItSpaCart(value) {
    const stringifiedValue = JSON.stringify(value);
    document.cookie = `${this.key}=${stringifiedValue}`;
  }

  add(item) {
    const cartValue = this.getItSpaCart();
    this.setItSpaCart([...cartValue, item]);
  }

  remove(item) {
    const cartValue = this.getItSpaCart();
    const itemInCart = cartValue.findIndex(val => val.name === item.name);

    if (itemInCart !== -1) {
      cartValue.splice(itemInCart, 1);
      this.setItSpaCart(cartValue);
    }
  }
}

[当我尝试使用此类时,例如使用方法add(),如下所示:

let cart = new Cart();
cart.add([{ num: 1, cost: 2 }, { num: 3, cost: 4 }, { num: 5, cost: 6 }]);

发生此错误:

无法读取Cart.getItSpaCart中未定义的属性'slice',

为什么会这样?

感谢每一个提示。

我在cart的某个类上有问题,我必须在工作中使用它。这是此类的代码:类Cart {Constructor(){this.key =“ IT_SPA_CART”;如果(!this.exists()){this ....

javascript typeerror slice
2个回答
0
投票

我有同样的问题;-)也许您已经知道如何解决它,但是如果没有解决,也许解决方案是在此行中更改代码:const cookies = document.cookie.split(";");。我将(“;)更改为(”;“)。


0
投票

尝试一下

© www.soinside.com 2019 - 2024. All rights reserved.