如何正确更新全局状态?

时间:2021-02-11 06:22:01

标签: reactjs react-redux

我正在开发一个电子商务类型的应用程序。我正在实现购物车功能,但我卡住了,似乎找不到方法。

基本上我有一个名为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,看看它是否翻了一番,而事实并非如此。

0 个答案:

没有答案
相关问题