如何解决是否建议在 mobx 中对数组使用可变操作?
每次在react
我都关心immutable array operations
避免通过 mutable operations
我经常使用immutable operations
每当我需要添加新项目时,我都会使用它
[...myArr,'newItem'];
代替可变操作
myArr.push('newItem');
然而,我在 official doc 上看到了一个 mobx
的例子,我很惊讶,因为他们使用了 push()
方法。
我是mobx
的初学者,我害怕使用mutable operation
,
有没有人对此有想法?
我做错了吗,或者我可以在 mutable
上使用 react 进行 mobx
操作吗?
解决方法
这个操作有不同的语义和后果,一切都取决于你的目标是什么。
你需要通知所有 observables 这个数组发生了变化吗?然后创建新数组,像 [...myArr,'newItem'];
或任何其他您喜欢的方式。
你是否只需要向数组中添加一个项目?使用push
例如,每个具有该数组的 deps 的 useEffect
都会在第一种情况下做出反应,但是当您 push
时,在第二种情况下将没有任何影响:
useEffect(() => {
// ...
},[myArray])
,
Spread operator with ... 创建一个新数组,需要分配一些内存。因此,与 push
let arr = [1,2,3];
let arr2 = [...arr]; // like arr.slice()
arr2.push(4);
// arr2 becomes [1,3,4]
// arr remains unaffected
阅读更多here
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。