有时,当使用React库(如反应路由器 )时,我会得到以下错误:
未定义的TypeError:无法读取未定义的属性“firstChild” /~/react-router/~/react/lib/ReactMount.js?:606
我该怎么解决呢?
发布于 2014-11-26 15:38:42
此错误通常是由两个版本的React一起加载引起的。
例如,如果您npm install
一个需要不同的React版本的包,并将它放入dependencies
而不是peerDependencies
中,那么它可能会在node_modules/<some library using React>/node_modules/react
中安装一个单独的React。
两种不同的反应不能很好地结合在一起(至少现在是这样)。
要修复它,只需删除node_modules/<some library using React>/node_modules/react
。
如果您看到一个库在dependencies
中而不是在peerDependencies
中进行反应,请提交一个问题。
发布于 2015-04-23 08:34:35
如果有人有这个问题
假设你的父母依赖于反应,而孩子则取决于反应。当你这样做时:
cd ../child npm link cd ../parent npm link child
这导致了这个问题,因为父级和子级将各自加载自己的React实例。
解决这个问题的方法如下:
cd parent cd node_modules/react npm link cd ../../../child npm link react
这可以确保父项目提供react依赖关系,即使是链接时也是如此,这就是npm在未链接时解决依赖关系的方法。
发布于 2015-03-08 00:03:00
使用require('react')
和require('React')
也会导致这个问题,即使只有一个版本的React。
https://www.npmjs.com/package/gulp-browserify没有这个问题。一旦我停止使用watchify+browserify并切换到watchify+browserify,Uncaught TypeError: Cannot read property 'firstChild' of undefined
就开始发生了。
https://stackoverflow.com/questions/27153166
复制相似问题