當我嘗試保存狀態的更新和修改歷史時,我遇到了一些問題。我有一個物件“Journey”,其中包含一個研討會串列(另一個陣列)。當我更新我的研討會串列時,我想創建另一個包含修改的陣列,同時我想保留前一個,以便我總是可以看到我的研討會串列的不同版本。
let idToRemove = event.currentTarget.id;
let tempJourney = [...journey];
for (let i = 0; i < tempJourney.length; i ) {
for (let j = 0; j < tempJourney[i].workshops.length; j ) {
if (tempJourney[i]?.workshops[j]?.id == parseInt(idToRemove)) {
tempJourney[i].workshops.splice(j, 1);
break;
}
}
}
setHasModification( true );
setLastJourney(journey); // Historical version
setJourney(tempJourney); // New version
}
在此處輸入影像描述
uj5u.com熱心網友回復:
當您傳播旅程時,物件仍然參考原始物件。
試試這個:
let tempJourney = JSON.parse(JSON.stringify(journey));
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/466992.html
上一篇:覆寫型別以使其在可選時更簡潔
下一篇:如何在通用函式中正確使用型別?
