我试图用react js和redux创建一个购物车,但有一个问题。
尝试了很多方法,但我一直在失败,当我把多个项目(食物/饮料)添加到列表中时,一切似乎都在起作用,但是当我想添加额外的饮料给现有选择时,我的列表被覆盖了。这是我现在掌握的代码:

const addItemToCart = item => {
   if (cartItems.length) {
     cartItems.forEach(itemToCheck => {
       if (item.name === itemToCheck.name) {
         addCountToItem({ ...itemToCheck, count: itemToCheck.count + 1 });
       } else if (item.name !== itemToCheck.name) {
         addToCart({ ...item, count: 1 });
       }
     });
   } else if (cartItems.length === 0) {
     addToCart({ ...item, count: 1 });
   }
 };

我的想法是,我可以在列表中有多个项目,列表中相同项目的数量不受限制。所以基本上,我应该可以有5个相同类型的比萨饼,3个不同类型的啤酒等。
我想和其他车一样。提前谢谢。
更新:
这里是addcounttoitem的代码。我删掉了但它朝这个方向发展
state.cartItems[findIndex(...)] = data.cartItem

最佳答案

解决问题的基本方法是

`let index=cartItem.findIndex(temp=>temp.name===item.name);
 if(index>-1){
     cartItem[index].count++;
 }
 else{
     cartItem.append({...item, count: 1 })
 }`

尽量不要改变cartitem对象

关于javascript - 购物车/将多个商品添加到购物车,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/57906717/

10-12 12:39
查看更多