gpt4 book ai didi

javascript - React/Redux - 如何复制深度嵌套状态?

转载 作者:行者123 更新时间:2023-12-03 04:27:34 24 4
gpt4 key购买 nike

我有一个深度嵌套的 redux 状态,如下所示:

{
name: "Item One",
children: [
{
name: "Item Two"
children: [
....
]
},
{
name: "Item Three",
children: [
....
]
}
]
}

我需要制作它的副本,以便我可以方便地修改它,然后用它替换状态。

不幸的是,仅使用 {...state} 不起作用,因为所有嵌套子级都没有被复制,它们仍然引用相同的对象。有没有方便的解决方法?

最佳答案

有几个选项:

  1. 使用update immutability helper其中有一些优秀的docs on the React site ,
  2. 使用类似 clone 的包它针对此类事情进行了优化。

我推荐第一个,因为语法特别强大,尤其是在处理像 Redux 存储这样的大型结构时。

作为文档中的示例:

import update from 'immutability-helper';

const newData = update(myData, {
x: {y: {z: {$set: 7}}},
a: {b: {$push: [9]}}
});

允许您修改深层嵌套的属性,而不必担心现有对象上的危险突变。

关于javascript - React/Redux - 如何复制深度嵌套状态?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43635769/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com