繁体   English   中英

替换/更新 Switch case 中的数据

[英]Replace/update data in Switch case

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

其他与 id 不匹配的记录应保持不变

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

数据 state 旧数据状态

新数据新数据 只更新一个数组,不加 3 到 2 剩下 arrays 在此处输入图像描述

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

尝试这个

您在其他条件下返回整个数据,而不是 map 的项目。


解决方案

   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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM