Javascript Redux persist不是persistent quantity,而是persistent cart total?

Javascript Redux persist不是persistent quantity,而是persistent cart total?,javascript,reactjs,react-redux,redux-persist,Javascript,Reactjs,React Redux,Redux Persist,我试图保持购物车的状态(物品、每件物品的数量、小计和总数)。我正在为此使用redux persist 我的问题是,当我更改购物车中物品的数量(例如,从1更改为5),然后刷新页面时,数量将返回到1。小计和总计仍然反映上述项目的价格x 5。刷新后无法更改数量,如果我继续尝试增加数量,购物车小计和总计仍然会增加 ChromeDevTools中的数量也没有变化(在应用程序的“存储>本地存储”选项卡下),所以我认为这不是一个显示问题 我在我的configureStore.js文件中尝试了白名单/黑名单某些

我试图保持购物车的状态(物品、每件物品的数量、小计和总数)。我正在为此使用
redux persist

我的问题是,当我更改购物车中物品的数量(例如,从1更改为5),然后刷新页面时,数量将返回到1。小计和总计仍然反映上述项目的价格x 5。刷新后无法更改数量,如果我继续尝试增加数量,购物车小计和总计仍然会增加

ChromeDevTools中的数量也没有变化(在应用程序的“存储>本地存储”选项卡下),所以我认为这不是一个显示问题

我在我的
configureStore.js
文件中尝试了
白名单
/
黑名单
某些状态。我不认为这是
redux persist
包的问题,我认为这是我如何实现它的问题,或者我的商店是如何建立的

如何为我的购物车保留物品、每件物品的数量和小计/总数?更重要的是,我关心的是物品的数量以及购物车小计和总计是否保持同步。


我已经把我的代码上传到了,所以你可以看到所有的东西以及它们是如何相互作用的

问题不在于
redux persist
,而在于
ADD\u QUANTITY
减速机中存在缺陷

目前看起来是这样的:

if (action.type === ADD_QUANTITY) {
        let addedItem = state.items.find(item => item.id === action.id);
        addedItem.quantity += 1;
        let newSubTotal = state.subTotal + addedItem.price;
        return {
            ...state,
            subTotal: newSubTotal,
            cartTotal: newSubTotal + shippingCost
        }

    }
因此,此操作从所有可用项的列表中查找该项,然后增加其数量(通过改变原始对象,这不是最佳做法,但不是这里的问题),并计算新的小计。然后它对更新的项目不做任何操作

由于您已将项目添加到您所在州的
addedItems
数组中,您需要在那里找到它并更新该版本的副本,然后将更新后的列表作为新的
addedItems
数组返回:

if (action.type === ADD_QUANTITY) {
    const addedItem = state.addedItems.find(item => item.id === action.id);
    let newSubTotal = state.subTotal + addedItem.price;
    const updatedItems = state.addedItems.map(item =>
      item.id === action.id ? { ...item, quantity: item.quantity + 1 } : item
    );
    return {
      ...state,
      addedItems: updatedItems,
      subTotal: newSubTotal,
      cartTotal: newSubTotal + shippingCost
    };
  }

我已经实现了您的解决方案,并且对
减量操作也做了类似的操作。现在,它似乎正在发挥应有的作用。谢谢你的指导!