Mobx 商店不会触发 react-native 项目的重新渲染

Mobx store doesn't trigger re-render on react-native project

我尝试了解如何将 MobX 与 React Native 结合使用。 我试图在 GH 中找到一些例子,但它们已经很老了。 (2-3岁).

我想在 Expo Bare (ExpoKit) 上编写应用程序,但我不明白为什么当我更改 MobX @observables 时我的组件没有重新渲染。

我用我的问题做了点心:https://snack.expo.io/@krasov/mobx-reproduction

Idk,可能是我看错了文档,但我无法弄清楚这里的问题是什么。

如果您使用的是 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.htmlhttps://mobx.js.org/react-integration.html