我正在使用MobX商店将一些用户身份验证数据作为可观察对象。我想访问一些我希望在带有组件的inject / observer模式之外运行的函数的数据。那是明智的吗?
例如,身份验证功能如下:
function authMe() { ...access mobx data here to perform conditional logic}
答案 0 :(得分:0)
我同意user1628461,但如果您的应用程序增长,重复传递商店作为参数可能会有问题。
您有可能首先初始化您的商店,然后在初始化您的帮助程序类时将其作为参数传递。 这样,您可以保存对商店及其可观察对象的引用,并在需要时访问它。见例:
App.jsx
import Store from './store.jsx'
import Helper from './helper.jsx'
const myStore = new Store();
const myHelper = new Helper(myStore);
myHelper.doSomething();
helper.jsx
export default class Helper {
constructor(store){
this.store = store;
}
doSomething() {
// do something with the store
this.store.useAction();
this.store.anObservable = 'modified';
}
}