動作資料包含一個陣列,我想根據 id 用新資料替換特定陣列。但事實證明,我沒有更新一個陣列,而是得到了 3 個包含其他陣列的陣列元素。
其他id不匹配的記錄應該保持不變
case UpdateOneBank:
return {
...state,
data: state.data.map((p) => p._id === action.data._id?action.data:state.data),}
資料狀態

新資料
只更新一個陣列,而不是將3個添加到2個剩余陣列中

uj5u.com熱心網友回復:
case UpdateOneBank:
return {
...state,
data: state.data.map((p) => p._id === action.data._id?action.data:p),}
嘗試這個
您在 else 條件下回傳整個資料,而不是地圖項。
uj5u.com熱心網友回復:
解決方案
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 狀態資料 array
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/365883.html
標籤:javascript 反应 还原
下一篇:解決迷宮的演算法陷入回圈
