微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Mobx存储不会触发本地本机项目的重新渲染

如何解决Mobx存储不会触发本地本机项目的重新渲染

我试图学习如何将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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。