在 React 组件之外访问 MobX 状态?

edd*_*ang 5 reactjs mobx mobx-react

我正在使用 MobX 存储来保存一些用户身份验证数据作为可观察数据。我想访问一些我想在组件的注入/观察者模式之外运行的函数的数据。这样做明智吗?

例如,身份验证函数如下:

function authMe() { ...access mobx data here to perform conditional logic}
Run Code Online (Sandbox Code Playgroud)

小智 2

我同意 user1628461 的观点,但是如果您的应用程序增长,重复传递 store 作为参数可能会出现问题。

您可以先初始化您的商店,然后在初始化辅助类时将其作为参数传递。通过这种方式,您可以保存对商店及其可观察量的引用,并在需要时访问它。参见示例:

应用程序.jsx

import Store from './store.jsx'
import Helper from './helper.jsx'

const myStore = new Store();
const myHelper = new Helper(myStore);

myHelper.doSomething();
Run Code Online (Sandbox Code Playgroud)

助手.jsx

export default class Helper {

  constructor(store){
    this.store = store;
  }

  doSomething() {
    // do something with the store
    this.store.useAction();
    this.store.anObservable = 'modified';
  }
}
Run Code Online (Sandbox Code Playgroud)