Не удается прочитать свойство 'slice' из неопределенного класса Cart - PullRequest
0 голосов
/ 16 марта 2020

У меня проблема с каким-то классом для тележки, который я должен использовать в своей работе. Вот код этого класса:

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 }]);

эта ошибка возникает:

Невозможно прочитать свойство 'slice' из неопределенного в Cart.getItSpaCart

Почему это произошло?

Спасибо за каждый совет.

1 Ответ

0 голосов
/ 21 марта 2020

У меня была такая же проблема ;-) Возможно, вы уже знаете, как ее исправить, но если нет, возможно, решение заключается в изменении кода в этой строке: const cookies = document.cookie.split(";");. Я изменил (";) на ("; ").

...