2017-05-31 2 views
1

J'utilise un magasin MobX pour stocker certaines données d'authentification utilisateur en tant qu'observables. J'aimerais accéder à certaines données pour certaines fonctions que je souhaite exécuter en dehors du modèle d'injection/observateur avec des composants. Est-ce sage de faire?Accéder à l'état MobX en dehors des composants React?

Par exemple, une fonction authenication comme si:

function authMe() { ...access mobx data here to perform conditional logic} 
+0

Sans plus d'informations architecturale de vous - je dirais que ce serait logique que les données à transmettre dans votre aide fonctionner par celui qui l'appelle. – pscl

Répondre

0

Je suis d'accord avec user1628461, mais si votre application se développe, il peut être difficile de passer à plusieurs reprises le magasin comme un argument.

Vous avez la possibilité d'initialiser votre magasin, puis de le passer en paramètre lors de l'initialisation de votre classe d'assistance. De cette façon, vous pouvez enregistrer une référence au magasin, ses observables et y accéder en cas de besoin. Voir par exemple:

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