Switch case中按ID更新数组单条数据时出现多余嵌套数组问题
问题原因
你在map遍历的回调逻辑中,_id不匹配的分支错误返回了完整的state.data数组,而非当前遍历到的单条原始数据p,导致所有未匹配_id的位置都被替换成了整个原数组,最终出现多层数组嵌套的异常结果。
修复方案
直接将不匹配分支的返回值改为当前遍历项p即可,修正后代码如下:
case UpdateOneBank: return { ...state, data: state.data.map((p) => p._id === action.data._id ? action.data : p) }
逻辑说明
map方法会逐一遍历原始data数组的每一项:
- 匹配到对应_id的条目时,替换为新的
action.data - 未匹配的条目直接返回原始的单条数据
p,不会产生嵌套,也不会改动其他未匹配的记录
内容的提问来源于stack exchange,提问作者Frallen
相关产品推荐
相关产品推荐

