Redux中的嵌套数组在React中重置值

Posted

技术标签:

【中文标题】Redux中的嵌套数组在React中重置值【英文标题】:Nested Array in Redux Resetting Value in React 【发布时间】:2022-01-11 11:28:56 【问题描述】:

我有一个名为products 的数组,其中有一个名为productCategory 的字段。我的问题是它清除了数组的其他值。

代码沙盒在这里 CLICK HERE

case appConstants.CHANGE_PRODUCT_CATEGORY:
  return 
    ...state,
    products: state.products.map((product) => 
      product?.productCode === action.payload?.productCode
        ? 
            ...product,
            productCategory: action.payload.productCategory
          
        : product;
    )
  ;

【问题讨论】:

仅供参考,如果你使用our official Redux Toolkit package 来编写你的 Redux 逻辑,这会简单得多,因为它使用 Immer 让你编写“变异”不可变状态更新逻辑,而不必使用一堆嵌套传播运算符。 【参考方案1】:

可能是因为你错过了 map 函数中的 return 关键字。

case appConstants.CHANGE_PRODUCT_CATEGORY:
    return 
    ...state,
    products: state.products.map((product) => 
      return product?.productCode === action.payload?.productCode
        ? 
            ...product,
            productCategory: action.payload.productCategory
          
        : product;
    )
;

【讨论】:

如果我的回答是正确的,如果您将其标记为已接受的回复,我将不胜感激。 另外,当我在 productName 中输入内容时,它会在从 ProductCategory 中选择后重置其值? 对,我没有检查你的沙箱,我只是根据你的代码猜测问题,我们来检查你的沙箱 能否请您看看这个SandBox 以检查它是否正常工作? 你能指出你改变了什么吗?这似乎是我的代码框链接。它应该是一个新链接

以上是关于Redux中的嵌套数组在React中重置值的主要内容,如果未能解决你的问题,请参考以下文章

在 React/Redux reducer 中,如何以不可变的方式更新嵌套数组中的字符串?

React(redux)中的重置输入字段[关闭]

在 React 中路由其他组件时重置 redux 存储

将状态传递给 React/Redux 中的递归嵌套组件

如何将 firestoreConnect 指向 React-Redux-Firebase 中的嵌套集合?

React-redux:嵌套数组正在重复