Composé de réactionDidMount ne déclenche pas

J'ai configuré un nouveau projet réactif et, pour une raison quelconque, la méthode componentDidMount n'est pas appelée.

J'ai vérifié ce comportement en plaçant un appel sur console.log dans componentDidMount mais je ne vois pas sa sortie dans la console.

En outre, this.setState() ne fonctionne pas.

Je suis très perplexe quant à la raison pour laquelle le componentDidMount n'est pas appelé. J'ai essayé d'utiliser à la fois React "v0.14.0" et "v0.14.3".

Pourquoi le composantDidMount n'est-il pas appelé?

Code:

 var React = require('react'); var RecipePage = React.createClass({ componentDidMount: function() { console.log('mounted!'); }, render: function() { return ( <div>Random Page</div> ); } }); module.exports = RecipePage; 

Cela m'est arrivé quand j'avais componentWillMount() défini 2x dans la même classe. Cela n'a pas généré d'erreur d'exécution. J'ai simplement supprimé la deuxième définition et les choses ont commencé à fonctionner.

Alors … et voici … J'ai finalement réussi à travailler (avec l'aide d'un expert en back-end). La raison pour laquelle les méthodes "componentDidMount" ne tiraient pas parce que mon serveur était regroupé et desservait tous les éléments de réaction + html sur le côté serveur . (Seules les méthodes "render" et "getInitialState" sont appelées pour créer le modèle "html" qui est livré via le navigateur du client … mais il s'arrête là parce qu'il pense qu'il est terminé)

Le correctif: recherchez un moyen de fournir le html "compilé" résultant via le serveur et, en plus, permettez que les événements de réactivité soient accessibles et "défectueux" à nouveau du côté du client . Lors de la compilation de mon fichier "view" (index.js ou index.html), j'ai inclus un script "Application.start ()" qui injecte de nouveau mon code bundle.js dans le modèle. Ensuite, dans mon fichier gulp, j'ai exporté la variable "Application" pour que le fichier "view" puisse y accéder.

Gahh … a tiré mes cheveux pour cela. Temps de lecture sur le côté serveur vs. rendu côté client

Vous devez modifier votre module.exports pour pointer sur RecipePage et non sur TestPage

 module.exports = RecipePage;