#react-native #expo #mobx #mobx-react
#react-native #expo #mobx #mobx-react
Вопрос:
Я пытался узнать, как я могу использовать MobX с React Native. Я пытался найти несколько примеров в GH, но они довольно старые. (2-3 года).
Я хочу написать приложение на Expo Bare (ExpoKit), но я не могу понять, почему мои компоненты не отображаются повторно при изменении MobX @observables.
Я создал закуску со своей проблемой: https://snack.expo.io/@krasov/mobx-reproduction
Idk, может быть, я пропустил документацию, но я не могу понять, в чем здесь проблема.
Ответ №1:
Если вы использовали MobX 6, то теперь вам нужно использовать makeObservable
метод внутри конструктора для достижения той же функциональности с декораторами, что и в MobX 5 раньше:
import { makeObservable } from "mobx"
class Store {
@observable string = 'Test String';
@action setString = (string) => {
this.string = string;
console.log(`new value = ${this.string}`);
};
constructor() {
// Just call it here
makeObservable(this);
}
}
Хотя есть новая вещь, которая, вероятно, позволит вам полностью отказаться от декораторов, makeAutoObservable
:
import { makeAutoObservable } from "mobx"
class Store {
// Don't need decorators now
string = 'Test String';
setString = (string) => {
this.string = string;
console.log(`new value = ${this.string}`);
};
constructor() {
// Just call it here
makeAutoObservable (this);
}
}
Подробнее здесь
https://mobx.js.org/migrating-from-4-or-5.html и https://mobx.js.org/react-integration.html
Комментарии:
1. Большое вам спасибо. Это решает проблему. Раньше я смотрел руководства MobX на YouTube, и они довольно старые.