Mobx Observable 对象响应更新

Mobx Observable object reacting to updates

我有一个 mobx 可观察对象:

@observable friend = {name: 'bert'}

我有一个更新对象的 mobx 操作:

@action addAge = () => this.friend.age = 20

但是我的 friend 对象没有更新。

我查看了 mobx 文档,似乎 map 可能是正确的使用方法,因为它考虑了放入对象中的新项目。然而,这似乎更适合阵列。 extendObservable 似乎更适合 类。

添加到 mobx 可观察对象的好的做法是什么?

Map 是更改对象键的正确方法,因为 map 会创建 keyed array.

Map 的工作方式类似于 ES6 map,因为它可以接受一个可迭代对象。

@observable friend = new Map([[ 'name', 'jack']])

现在可以随时使用 set 修改朋友。

@action addAge = () => { this.friend.set('age', 24); }

任何使用 friend observable 的东西都会对现有键值的变化以及新键的添加或删除做出反应。