2017-06-29 3 views
2

J'utilise mobX en combinaison avec React et Meteor et je dois pouvoir utiliser les informations enregistrées dans un magasin dans un autre. Plus précisément, j'ai besoin d'avoir une référence du magasin A dans le magasin B afin d'appeler une action du magasin A et d'obtenir les informations qu'il avait récupérées en s'abonnant à une collection. J'ai utilisé le décorateur @inject mais je ne sais pas comment appeler l'action. MerciComment injecter un magasin dans un autre magasin dans mobX

Répondre

1

@inject est utilisé pour injecter quelque chose du Provider dans un composant React, pas entre les magasins.

Vous pouvez simplement importer le premier magasin dans le second magasin et appeler directement l'action.

Exemple

// store1.js 
import { observable, action } from 'mobx'; 

class Store1 { 
    @observable count = 0; 

    @action increment() { 
    ++this.count; 
    } 
} 

export default new Store1(); 

// store2.js 
import { observable, action } from 'mobx'; 
import store1 from './store1'; 

class Store2 { 
    @observable name = 'foobar'; 

    constructor() { 
    store1.increment(); 
    } 

    @action changeName(name) { 
    this.name = name; 
    } 
} 

export default new Store2();