Replace/update 开关盒中的数据

Replace/update data in Switch case

动作数据包含一个数组,我想根据id,用新的数据替换特定的数组。但事实证明,我没有更新一个数组,而是得到了 3 个包含其他数组的数组元素。

其他不符合id的记录应该保持不变

 case UpdateOneBank:
      return {
        ...state,
        data: state.data.map((p) => p._id === action.data._id?action.data:state.data),}

数据状态

新数据 只更新一个数组,而不是将 3 in 添加到 2 remain 数组

case UpdateOneBank:
  return {
    ...state,
    data: state.data.map((p) => p._id === action.data._id?action.data:p),}

试试这个

您在 else 条件下返回了整个数据,而不是地图项。


解决方案

   case UpdateOneBank:
        return {
           ...state,
           data: state.data.map((originalValue) => originalValue._id === action.data._id?  action.data:  originalValue),}

错误

而不是这样做:

case UpdateOneBank:
      return {
        ...state,
        data: state.data.map((originalValue) => originalValue._id === action.data._id?  action.data:  state.data),}

原因

Note: Everytime you are entering in else condition, you are pushing/returning your own state.data array