我将React版本从0.12.2升级到0.13.2,将我的React-Router从0.12.4升级到0.13.2。只进行这两次升级,没有别的,我现在在加载我的网页/应用时出现以下错误:
Uncaught TypeError: Cannot read property '_currentElement' of null
任何可能导致此问题的想法?我似乎有一些潜在的React-Router错误的引用,但没有确定的。
导致错误的特定行是:
ReactRef.detachRefs(internalInstance, internalInstance._currentElement);
更新1:我刚刚将版本从1.0.0升级到1.1.0,并将react-router-bootstrap(我还没有实际使用)从0.9.1升级到0.13.0基于@ BinaryMuse的评论 - 没有变化。
更新2:经过进一步测试后,我将其缩小为react-d3的问题。从我的站点禁用react-d3代码会导致错误消失。我正在删除路由代码以使帖子更简洁,因为我现在相当确信react-router不会导致此问题。
更新3:感谢@CoryDanielson为react-d3创建新标记。
的package.json
{
"author": "me",
"name": "my project",
"description": "my awesome project",
"version": "0.1.0",
"dependencies": {
"bootstrap": "^3.3.2",
"d3": "^3.5.5",
"font-awesome": "^4.3.0",
"jquery": "^2.1.3",
"react": "^0.13.2",
"react-bootstrap": "^0.21.0",
"react-d3": "^0.3.1",
"react-router": "^0.13.2",
"react-router-bootstrap": "~0.13.0",
"reflux": "^0.2.6",
"uuid": "^2.0.1"
},
"devDependencies": {
"browser-sync": "^2.2.2",
"browserify": "^9.0.3",
"del": "^1.1.1",
"envify": "^3.4.0",
"gulp": "^3.8.11",
"gulp-css-url-adjuster": "^0.2.3",
"gulp-jshint": "^1.9.2",
"gulp-minify-css": "^0.5.1",
"gulp-sourcemaps": "^1.5.0",
"gulp-uglify": "^1.1.0",
"gulp-util": "^3.0.4",
"gulp-watch": "^4.1.1",
"reactify": "~1.1.0",
"vinyl-buffer": "^1.0.0",
"vinyl-source-stream": "^1.0.0",
"watchify": "^2.4.0"
},
"browserify": {
"transform": [
[
"reactify",
{
"es6": false
}
]
]
},
}
答案 0 :(得分:12)
我已经弄明白了。它归结为react-d3 render
中linechart/DataSeries
功能的问题。该函数通过对数据数组的第一个元素进行采样来检查数据类型。但是,它不会检查数据数组是否为空。
我之前以<{p>>的形式看到来自LineChart
的错误
Uncaught TypeError: Cannot read property 'x' of undefined
但是,我忽略了它们,因为它们是访问错误,并没有阻止应用程序运行。 React中的某些内容必须已从v0.12.4更改为v.0.13.2,以便这些先前无害的错误现在正在中断。我阅读了v0.13.0,v0.13.1和v.0.13.2的发行说明,但没有发现任何说明为什么会出现这种新错误的原因。我没有时间看代码差异。
我没有连接这两个错误,因为LineChart
的部分仍然抛出Uncaught TypeError: Cannot read property 'x' of undefined
所以我只是假设Uncaught TypeError: Cannot read property '_currentElement' of null
错误是由升级引起的新错误并且掩盖了额外的错误无法读取x错误。
我将很快提交一个pull-request来反应-d3以纠正这个问题。谢谢大家的帮助。
答案 1 :(得分:3)
我和0.13.2有同样的问题,然而,我的错误原因和解决方案有点不同:
错误归结为我的npm版本。我使用npm 2.1.4自升级(现在在2.8.4)和运行npm update -g npm后,我能够在不触及package.json或其他任何东西的情况下完成所有工作。
请告诉我这是否适合您!
答案 2 :(得分:3)
如果它可以帮助我使用错误事件Name prop(onItemChange而不是onChange)与Material-UI DropDownMenu组件发生同样的错误。
<DropDownMenu menuItems={menuItems} onChange={this._onItemClick}/>
使用正确的事件道具名称为我解决了这个问题。
答案 3 :(得分:0)
在IE11中添加“babel-polyfill”为我解决了这个问题
答案 4 :(得分:-1)
当我的app.jsx文件引用List组件而我忘记将其包含在
中时出现此错误var List = require('./list');