我可以将一个新的Map对象分配给mobx中的可观察对象吗



我有一个类的实例,比如FooClass,它有一个属性myMap。最近,我的服务器通知我,地图有一些新内容。我可以给myMap分配一个新的Map吗?或者这对mobx来说不好吗?

如果不好的话,我想我需要调和这两张地图。在mobx中有一个实用函数可以做到这一点吗?

class FooClass {
constructor() { makeObservable(this); }
@observable myMap = new Map();
}
let foo = new FooClass();
runInAction(() => foo.myMap.set("foo", "123"));
runInAction(() => foo.myMap = new Map()); // <- Is this ok or am I being naughty?

附言:我使用的是babel,所以装饰师会被改造,这不会造成问题。

在某些角落的情况下可能会有一些额外的重新渲染,但如果需要或比合并它们容易得多,则可以指定新的Map。它基本上与重新分配数组或对象相同。

最新更新