如何在 React State 中保留数组修改的历史记录?

How to keep the history of modications of an array in React State?

我在尝试保存状态的更新和修改历史时遇到了一些问题。 我有一个对象“旅程”,其中包含一个研讨会列表(另一个数组)。当我更新我的研讨会列表时,我想创建另一个包含修改的数组,同时我想保留以前的数组,这样我总能看到我的研讨会列表的不同版本。

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
}

enter image description here

当你传播旅程时,对象仍然引用原始对象。

试试这个:

let tempJourney = JSON.parse(JSON.stringify(journey));