Mobx store не запускает повторную визуализацию в проекте react-native

#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, и они довольно старые.