Javascript 使用redux响应本地购物车

Javascript 使用redux响应本地购物车,javascript,reactjs,react-native,redux,react-redux,Javascript,Reactjs,React Native,Redux,React Redux,你好,我刚开始用react native进行redux,我正在尝试制作一个食品配送应用程序。每种食物都有饮料或甜点等选择。我希望,如果用户添加一个篮子和一个项目,我们会检查所选选项是否相同,以增加数量,如果它们不相同,我希望向全局状态添加另一个具有新选项的项目。只有我尝试了很多事情,但似乎没有一件能达到我的期望。我传递给全局状态的数据结构如下所示 cartProduct=[ { id:itemId, restaurantName:restaurantName, 名称:itemName, 数量:

你好,我刚开始用react native进行redux,我正在尝试制作一个食品配送应用程序。每种食物都有饮料或甜点等选择。我希望,如果用户添加一个篮子和一个项目,我们会检查所选选项是否相同,以增加数量,如果它们不相同,我希望向全局状态添加另一个具有新选项的项目。只有我尝试了很多事情,但似乎没有一件能达到我的期望。我传递给全局状态的数据结构如下所示

cartProduct=[
{
id:itemId,
restaurantName:restaurantName,
名称:itemName,
数量:数量,,
价格:价格
选择选项:[
optionId:optionId,
itemId:itemId,
名称:itemName,
]
}

]
我会这样做

switch (action.type) {
  case 'ADD_TO_CART':
  const cartProductIndex = state.cartProduct.findIndex(item => item.id === action.value.id)
  if (cartProductIndex == -1) {
    return {
      ...state,
      cartProduct: [...state.cartProduct, action.value]
    }
  }
                
  const newCartProduct = state.cartProduct[cartProductIndex].selectedOption.map(item => {
    if (item.item === action.value.selectedOption.item) {
      item.quantity++
     }
   
     return item
   })                      
   
   return {
     ...state,
     cartProduct: newCartProduct
   }
}  

              

无法更新映射循环中的状态,映射将返回新数组。您希望使用map创建一个新数组,然后使用该值。函数完成后,您应该返回,不需要其他返回。

关于第一篇文章,感谢您展示所有代码。我将向您展示我将在下面做什么。感谢您的帮助,我将尝试您的解决方案,希望它符合我的期望