TypeError lors de l'utilisation de Réagir: Impossible de lire la propriété 'firstChild' undefined
Parfois, lors de l'utilisation de Réagir bibliothèques, comme réagir-routeur, j'obtiens cette erreur:
Uncaught TypeError: Cannot read property 'firstChild' undefined
/~/réagir-routeur/~/réagir/lib/ReactMount.js?:606
Comment puis-je résoudre ce problème?
Vous devez vous connecter pour publier un commentaire.
Cette erreur est souvent causée par deux versions de Réagir chargé aux côtés.
Par exemple, si vous
npm install
un package qui nécessite une autre version Réagir et met endependencies
au lieu depeerDependencies
, il pourrait installer un autre de Réagir ennode_modules/<some library using React>/node_modules/react
.Deux différents Réagit de ne pas jouer bien ensemble (du moins pas encore).
Pour le fixer, il suffit de supprimer
node_modules/<some library using React>/node_modules/react
.Si vous voyez une bibliothèque mettant à Réagir dans
dependencies
au lieu depeerDependencies
, fichier un problème.require('react')
&require('react/addons')
dans des fichiers séparés.node_modules
sous-dossier?require('react')
etrequire('React')
également de se débarrasser de cette erreur.event.stopPropagation()
dans mon gestionnaire de clic.Au cas où quelqu'un a ce problème ayant
npm link
ed deux modules en fonction de réagir, j'ai trouvé une solution...Disons que vous avez Parent en fonction de Réagir, et de l'Enfant en fonction de réagir. Lorsque vous faites:
cd ../child
npm link
cd ../parent
npm link child
Ce sont les causes de ce problème, parce que le parent et l'enfant chaque charge leur propre instance de Réagir.
Le moyen de résoudre ce problème est comme suit:
cd parent
cd node_modules/react
npm link
cd ../../../child
npm link react
Ce qui garantit que votre projet parent fournitures réagir la dépendance, même lorsqu'elles sont liées, qui est de savoir comment mnp permettrait de résoudre la dépendance lorsque vous êtes déconnecté.
À l'aide de
require('react')
etrequire('React')
de façon incohérente des causes de ce problème ainsi, même si vous avez seulement une version de Réagir.https://www.npmjs.com/package/gulp-browserify n'ont pas ce problème. Une fois que j'ai arrêté de l'utiliser gulp-browserify et sont passés à watchify+browserify,
Uncaught TypeError: Cannot read property 'firstChild' of undefined
a commencé.Il me semble peerDependencies est de ne pas obtenir de traction. Voir https://github.com/npm/npm/issues/5080#issuecomment-40545599
Je suis le maintien de réagir-date-picker (et d'autres réagissent modules), et ce que j'ai fait jusqu'à maintenant est de spécifier la Réagir la dépendance à l'aide de l'accent circonflexe, par exemple ^0.12.0.
Aussi, lorsque vous faites une compilation de tous les fichiers concaténés, pour une utilisation en dehors du mécanisme national de prévention de l'écosystème, je l'utilise avec webpack
externals: { 'react': 'React'}
qui ira chercher le mondial var
React
.Pour moi, le problème est que j'ai été en utilisant un
<Link>
de réagir-routeur à l'intérieur d'un<NavItem>
de réagir-bootstrap.Si vous rencontrez ce crash pendant que le serveur de rendu côté et aucune de ces réponses sont le problème, ici, c'est la probable:
De faire quelque chose async (setTimeout, AJAX, etc.) dans componentWillMount. Depuis componentWillMount est appelé sur le serveur, ce setTimeout/demande encore du feu. Si vous setState à l'intérieur de cette fonction de rappel, puis il va la cause de l'erreur ci-dessus.