2017-07-22 2 views
1

J'ai un composant de réaction que j'injecte un magasin de Mobx. Lorsque j'essaie d'accéder à un observable de mon magasin à l'intérieur d'une méthode de cycle de vie (componentWillMount ou componentDidMOunt), la valeur est vide. Cependant, lorsque j'y accède à l'intérieur de la méthode de rendu, il est disponible. Y a-t-il quelque chose qui me manque? J'ai l'impression de manquer quelque chose de fondamental ici.Le magasin mobx n'est pas accessible à l'intérieur des méthodes du cycle de vie?

+0

Ma compréhension: MOBX observera des changements de méthode dans les observables accessibles rendre et exécuter rendent si les changements de valeur. Bien que la valeur de observable soit disponible dans les méthodes du cycle de vie, elle ne surveille pas les changements dans ces observables, de sorte que le rendu ne se produira pas lors du changement de valeur. – vijayst

+0

Oui. Ça a du sens. Je suppose que je place une nouvelle valeur dans l'arbre un peu et que mon composant enfant a déjà été rendu avant que ma valeur ne soit définie. Je vais explorer cela un peu plus. – archae0pteryx

+0

utilisez-vous les fixations mobx-react? voir https://github.com/mobxjs/mobx-react –

Répondre

1

The documentation indique clairement que observer de mobx-react pistes observables seulement dans la méthode de rendu du composant enveloppé.

Fonction (décorateur) qui convertit une définition de composant React, React classe de composants ou de rendre autonome la fonction dans un composant réactif, qui suit qui observables utilisées par le rendu et un nouveau rendu automatiquement le composant lorsque l'une de ces valeurs change .

Si vous jetez un oeil à observer sources vous pouvez confirmer qu'il ne render pistes