我正在开发一个电子商务类型的应用程序。我正在实现购物车功能,但我卡住了,似乎找不到方法。
基本上我有一个名为cart 的全局状态。看起来像这样:
cart: [
{
book: {},
quantity: 1
}
]
我想在其中找到一本书时更新数量。
case "ADD_TO_CART":
let book_index = state.cart.findIndex(
(el) => el.book._id === action.payload._id
);
let newCart;
if (book_index === -1){
newCart = state.cart.concat({book: action.payload, quantity: 1})
} else {
newCart = [...state.cart];
newCart[book_index].quantity = newCart[book_index].quantity + 1;
}
return {
...state,
cart: newCart,
};
其中的问题是,当找到一本书时,它会将数量更新为 2 倍。因此数量会变成 1、3、5、7 以此类推。 我尝试将 1 替换为 0.5,看看它是否翻了一番,而事实并非如此。