我试图用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/