Reactjs Mobx @action 函数
Reactjs Mobx @action function
我刚开始使用 mobx。我有 mobx class 如下:
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 个可观察属性并且我想更改它们,我是否必须为每个可观察对象执行每个操作?那将是非常低效的。有没有办法制作一个功能,以便所有可观察对象可以共享以改变属性?
好吧,您可以在您的商店中创建这样的功能 class 来处理您的数百个 @observable
属性。
@action setProperty = (key, value) => {
this[key] = value;
}
对于第一个问题,您可以直接更改 @observable
,但最好使用 @action
函数。所以继续使用 @action
函数。
我刚开始使用 mobx。我有 mobx class 如下:
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 个可观察属性并且我想更改它们,我是否必须为每个可观察对象执行每个操作?那将是非常低效的。有没有办法制作一个功能,以便所有可观察对象可以共享以改变属性?
好吧,您可以在您的商店中创建这样的功能 class 来处理您的数百个 @observable
属性。
@action setProperty = (key, value) => {
this[key] = value;
}
对于第一个问题,您可以直接更改 @observable
,但最好使用 @action
函数。所以继续使用 @action
函数。