5

I'm using a MobX store to hold some user authentication data as an observable. I'd like to access some data for some functions I'd like to run outside of the inject/observer pattern with components. Is that wise to do?

For example an authenication function as so:

function authMe() { ...access mobx data here to perform conditional logic}
eddiewang
  • 415
  • 5
  • 21
  • Without more architectural info from you - I'd say it would make sense for that data to be passed into your helper function by whoever is calling it. – pscl May 31 '17 at 17:18

1 Answers1

2

I agree with user1628461, but if your application grows, it can be problematic to repeatedly pass the store as an argument.

A possibility you have is to first initialise your store, to then pass it as parameter when initialising your helper class. This way you can save a reference to the store, its observables, and access it when needed. See example:

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';
  }
}