Reactjs Mobx @action函数

问题描述 投票:1回答:1

我刚刚开始使用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个可观察的属性并且我希望更改它们,我是否必须为每个可观察对象做出每个动作?那将是非常低效的。有没有办法制作一个函数,以便所有可观察对象可以共享以改变属性?

reactjs react-native redux mobx
1个回答
0
投票

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

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

对于您的第一个问题,您可以直接更改@observable,但使用@action函数是最佳实践。所以继续使用@action函数。

© www.soinside.com 2019 - 2024. All rights reserved.