Reactjs Mobx @action函数

时间:2018-08-30 05:39:18

标签: reactjs react-native redux mobx

我刚刚开始使用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个可观察的属性,并且希望更改它们,是否需要对每个可观察的属性进行每个操作?那真的是低效的。有没有一种方法可以使所有可观测对象共享以改变其属性?

1 个答案:

答案 0 :(得分:0)

好吧,您可以在商店类中创建这样的函数来处理数百个@observable属性。

@action setProperty = (key, value) => {
    this[key] = value;
}

对于第一个问题,您可以直接更改@observable,但是最好使用@action函数。因此,只需继续使用@action函数。