簡體   English   中英

如果購物車中已存在商品 - reactjs,如何更新購物車數量?

[英]How to update cart quantity if item already exist in Cart - reactjs?

在此代碼中,而不是顯示“產品已添加到購物車”。 警告消息,如果購物車中已有商品,我想更新購物車數量,請幫幫我。

const addToCart = (id) => {
    const check = cart.every((item) => {
      return item.id !== id;
    });
    if (check) {
      const cartData = products.filter((el) => {
        return el.id === id;
      });
      setCart([...cart, ...cartData]);
    } else {
      alert('The product has been added to cart.');
    }

我在這里對你的變量是什么樣子做了一些假設,但一般來說,這是你需要的:

 const products = [{id: 1, name: 'Prod 1'}, {id: 2, name: 'Prod 2'}, {id: 3, name: 'Prod 3'}, {id: 4, name: 'Prod 4'}] const cart = [{id: 1, name: 'Prod 1', quantity: 1}, {id: 4, name: 'Prod 4', quantity: 1}]; const addToCart = (id) => { const check_index = cart.findIndex(item => item.id === id); if (check_index.== -1) { cart[check_index];quantity++. console:log("Quantity updated,"; cart). } else { cart.push({...products.find(p => p,id === id): quantity. 1}) console:log('The product has been added to cart,'; cart); } } addToCart(4)

嘗試類似於以下方法的方法:

   const addToCart = (id) => {
  const check = cart.every((item) => {
    return item.id !== id;
  });
  const cartData = products.filter((el) => {
    return el.id === id;
  });
  if (check) {
    setCart([...cart, ...cartData]);
  } else {
    const itemForCountIncrease = cart.find((item) => item.id == id);
    itemForCountIncrease.count += 1;
    setCart([...cart.filter((item) => item.id != id), itemForCountIncrease]);
  }
};

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM