Reactjs Mobx @action function - PullRequest
       5

Reactjs Mobx @action function

0 голосов
/ 30 августа 2018

Я только начал использовать 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 голосов
/ 31 августа 2018

Ну, вы можете сделать такую ​​функцию в своем классе магазина, чтобы обрабатывать ваши сотни @observable свойств.

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

А для первого вопроса вы можете изменить @observable напрямую, но лучше использовать функцию @action. Так что просто продолжайте использовать @action функции.

...