javascript - link - react router tutorial
TypeError cuando se usa React: no se puede leer la propiedad ''firstChild'' de undefined (6)
El uso de require(''react'')
y require(''React'')
causa este problema de manera inconsistente, incluso si solo tiene una versión de React.
https://www.npmjs.com/package/gulp-browserify no tuvo este problema. Una vez que dejé de usar gulp-browserify y cambié a watchify + browserify, Uncaught TypeError: Cannot read property ''firstChild'' of undefined
comenzó a suceder.
A veces, cuando uso las bibliotecas React, como react-router , obtengo este error:
No se detectó TypeError: no se puede leer la propiedad ''firstChild'' de undefined
/~/react-router/~/react/lib/ReactMount.js?:606
¿Cómo lo arreglo?
En caso de que alguien tenga este problema al tener npm link
ed dos módulos dependiendo de la reacción, encontré una solución ...
Digamos que tienes un padre dependiendo de React, y un niño dependiendo de reaccionar. Cuando tu lo hagas:
cd ../child npm link cd ../parent npm link child
Esto causa este problema, ya que cada padre e hijo cargarán cada uno su propia instancia de React.
La forma de solucionarlo es la siguiente:
cd parent cd node_modules/react npm link cd ../../../child npm link react
Esto garantiza que su proyecto principal proporcione la dependencia de reacción, incluso cuando está vinculado, que es como npm resolvería la dependencia cuando está desvinculado.
Este error generalmente es causado por dos versiones de React cargadas a la par .
Por ejemplo, si npm install
un paquete que requiere una versión React diferente y la coloca en dependencies
en lugar de dependencies
peerDependencies
, podría instalar un React separado en node_modules/<some library using React>/node_modules/react
.
Dos reacciones diferentes no jugarán muy bien juntas (al menos todavía).
Para solucionarlo, simplemente elimine node_modules/<some library using React>/node_modules/react
.
Si ve una biblioteca que pone React en dependencies
en lugar de dependencies
entre peerDependencies
, presente un problema.
Me parece que las dependencias entre iguales no están recibiendo tracción. Consulte https://github.com/npm/npm/issues/5080#issuecomment-40545599
Estoy manteniendo react-date-picker (y otros módulos de reacción), y lo que he hecho hasta ahora es especificar la dependencia React utilizando el carácter, por ejemplo ^ 0.12.0.
Además, cuando se realiza una compilación, todos los archivos concatenados, para uso fuera del ecosistema npm, uso un paquete web con elementos externals: { ''react'': ''React''}
que buscará la var. Global React
.
Para mí, el problema era que estaba usando un <Link>
de react-router dentro de un <NavItem>
de react-bootstrap.
Si está experimentando este bloqueo mientras el servidor está renderizado y ninguna de estas respuestas es el problema, aquí está el posible culpable:
Haciendo algo asíncrono (setTimeout, AJAX, etc.) en componentWillMount. Dado que se llama a componentWillMount en el servidor, este setTimeout / request todavía se activará. Si establece Estado dentro de esta devolución de llamada, se producirá el error anterior.