我刚刚开始使用mobx。我的mobx类别如下:
class Store{
@observable locationKey = null;
@observable query = '';
@action setLocationKey = key =>{
this.locationKey = key;
}
@action setQuery = test =>{
this.query = test;
}
}
我有两个可观察的属性,并且有两个可以更改这些属性的动作。据我所知,我只能通过该操作来更改可观察的属性,并且不能直接更改,例如,在其他某些组件中this.props.store.locationKey = 5
(我对吗?)
然后,如果我喜欢100个可观察的属性,并且希望更改它们,是否需要对每个可观察的属性进行每个操作?那真的是低效的。有没有一种方法可以使所有可观测对象共享以改变其属性?
答案 0 :(得分:0)
好吧,您可以在商店类中创建这样的函数来处理数百个@observable
属性。
@action setProperty = (key, value) => {
this[key] = value;
}
对于第一个问题,您可以直接更改@observable
,但是最好使用@action
函数。因此,只需继续使用@action
函数。