On suppose la structure suivanteComment accéder au magasin mobx dans un autre magasin mobx?
stores/
RouterStore.js
UserStore.js
index.js
chacun des fichiers ...Store.js
est une classe de magasin MOBX contenant @observable
et @action
. index.js
exporte seulement tous les magasins, donc
import router from "./RouterStore";
import user from "./UserStore";
export default {
user,
router
};
Quelle est bonne façon d'accéder à un magasin dans un autre? c'est-à-dire à l'intérieur de mon UserStore, j'ai besoin d'envoyer une action à partir de RouterStore lorsque l'authentification des utilisateurs change.
Je fatigué import store from "./index"
l'intérieur UserStore
puis en utilisant store.router.transitionTo("/dashboard")
(transitionTo
) est une action dans la classe RouterStore.
Mais cela ne semble pas fonctionner correctement.
Ah a du sens, tout d'abord devrait-il être 'userstore = new UserStore (routerStore)'? Et deuxièmement, dans la classe UserStore, est-ce que je prends juste un routeur dans un constructeur normal, ou dois-je lui appliquer des choses mobx, c'est-à-dire faire de ce magasin un observateur ou quelque chose? Toute chance que vous pourriez fournir un exemple étendu? – Ilja
J'ai corrigé la faute de frappe. Merci d'avoir remarqué. –
Vous pouvez utiliser le UserStore en tant qu'argument de constructeur normal. Vous venez de partager l'instance de votre boutique, vous ne créez pas de nouveau magasin, il n'est donc pas nécessaire de spécifier quoi que ce soit. Je vais chercher un exemple –