【发布时间】:2021-01-28 05:37:53
【问题描述】:
我有一个网站,用户可以在该网站上增加产品的数量,然后再将其添加到购物车。现在,如果用户决定返回产品并通过增加产品数量再添加 3 个,然后添加到购物车 - 我如何更新购物篮中现有产品的数量?
目前,我会根据选择的内容获得不同数量的产品副本。
这是我的减速器的代码:
import { createSlice } from "@reduxjs/toolkit";
const initialState = {
items: [],
};
const basket = createSlice({
name: "basket",
initialState,
reducers: {
addToBasket: (state, { payload }) => {
// No idea what to do with this..
state.items.filter((pizza) => pizza.name === payload.name);
// This pushes the item fine, but I get multiple of the same item in the cart instead of just updating its quantity
state.items.push(payload);
// state.items.map((pizza) =>
// pizza.name === payload.name
// ? {
// ...pizza,
// quantity: pizza.quantity + payload.quantity,
// }
// : pizza
// );
},
},
});
export const { addToBasket } = basket.actions;
export const basketItems = (state) => state.basket.items;
export default basket.reducer;
payload是具体的产品,它会是一个对象:
{
name: "product name",
image: "url.jpeg",
price: "14.99"
}
我一生都无法弄清楚在这里做什么才能不改变状态。没有任何效果,我觉得我已经尝试了所有可能的方法,但显然我错过了一些东西。
非常感谢任何帮助!!!
谢谢
【问题讨论】:
标签: javascript reactjs ecmascript-6 react-redux redux-toolkit