Увеличение количества корзины Vue.js, когда идентификатор уже существует в корзине - PullRequest
0 голосов
/ 18 октября 2018

HI Я создаю свою собственную корзину покупок и у меня возникают проблемы с увеличением количества, когда идентификатор уже находится в корзине, поэтому мой вопрос: как я могу отфильтровать идентификатор в cartList?поэтому идентификатор не будет дублироваться, а вместо этого увеличит отфильтрованный идентификатор в корзине.

cartList: [],

productList:[],
cartadd: {
      id: 0,
      name: 0,
      price: 0,
      quantity: 0,
      image: ''
     }

    viewStorageCart () {
        if(localStorage.getItem('cartStorageList')) {
            this.cartList = JSON.parse(localStorage.getItem('cartStorageList'))
        }
    },
    addStorageCart (product) {
        this.cartadd.id = product.id;
        this.cartadd.name = product.product_name;
        this.cartadd.price = product.product_price;
        this.cartadd.quantity = 1;
        this.cartadd.image = product.product_image;
        this.cartList.push(this.cartadd);
        this.cartadd = {}
        this.storeCart();
    }, 
    removeStorageCart (product) {
        this.cartList.splice(product, 1);
        this.storeCart();
    },
    storeCart() {
        let parsed = JSON.stringify(this.cartList);
        localStorage.setItem('cartLicartStorageListst', parsed)
        this.viewStorageCart();
    },

1 Ответ

0 голосов
/ 18 октября 2018

Просто проверьте массив cartList и увеличьте его количество, если оно существует

addStorageCart (product) {
 var findProduct = this.cartList.find(o => o.id === product.id)
 if(findProduct){
   findProduct.quantity +=1;
    return;
 }
this.cartadd.id = product.id;
this.cartadd.name = product.product_name;
this.cartadd.price = product.product_price;
this.cartadd.quantity = 1;
this.cartadd.image = product.product_image;
this.cartList.push(this.cartadd);
this.cartadd = {}
this.storeCart();
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...