You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

React中Redux更新嵌套数组products的productCategory时其他值被清空问题

你代码的问题出在map函数的回调写法上:你用了花括号包裹回调逻辑,但没有添加return语句,导致每次遍历都返回undefined,最终products数组会被替换为全undefined的数组,表现就是其他值被清空。

修正方案

有两种可行的修正写法:

  1. 去掉回调的花括号,使用箭头函数隐式返回
case appConstants.CHANGE_PRODUCT_CATEGORY:
  return {
    ...state,
    products: state.products.map((product) => 
      product?.productCode === action.payload?.productCode
        ? {
            ...product,
            productCategory: action.payload.productCategory
          }
        : product
    )
  };
  1. 保留花括号,手动添加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;
    })
  };

内容的提问来源于stack exchange,提问作者Joseph

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.23 16:45:04