我将从0.12.2升级到0.13.2,将React路由器从0.12.4升级到0.13.2。只做这两次升级而不做其他任何事情,现在加载我的网页/应用程序时,我会得到以下错误:
Uncaught TypeError: Cannot read property '_currentElement' of null有什么原因吗?我似乎提到了一个潜在的反应-路由器错误,但没有明确的。
导致错误的特定行是:
ReactRef.detachRefs(internalInstance, internalInstance._currentElement);更新1:根据@BinaryMuse的评论,我刚刚将reactify从1.0.0升级到1.1.0,并将reactify-路由器-引导(我还没有实际使用)从0.9.1升级到0.13.0,没有改变。
更新2:经过进一步的测试,我已经将其缩小到反应d3的一个问题上。从我的站点禁用Reactid-d3代码会导致错误消失。我正在删除路由代码,以使文章更简洁,因为我现在相当有信心的反应-路由器不是造成这个问题。
更新3:感谢@CoryDanielson为反应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
}
]
]
},
}发布于 2015-04-22 18:59:04
我已经想明白了。这可以归结为render函数在反应d3的linechart/DataSeries中发现的一个问题。该函数通过采样数据数组的第一个元素来检查数据的类型。然而,它没有提供任何检查来检查数据数组是否为空。
我以前看到过来自LineChart的错误
Uncaught TypeError: Cannot read property 'x' of undefined然而,我忽略了它们,因为它们是访问错误,并且没有停止应用程序的运行。反应中的某些东西一定是从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错误。
我将提交一个拉动请求,以反应-d3不久,以纠正这个问题。谢谢你们的帮助。
更新: 这是拉请求。
发布于 2015-04-28 22:55:36
我的0.13.2也有同样的问题,但是,我错误的原因和解决方法有点不同:
这个错误归结于我的npm版本。自从升级(现在是2.8.4)和运行npm更新-g npm以来,我一直在使用npm2.1.4,我可以在不接触package.json或其他任何东西的情况下实现所有的工作。
如果这对你有用,请告诉我!
发布于 2015-05-23 20:50:00
如果可以的话,我在使用坏事件名称DropDownMenu (onItemChange而不是onChange)的Material组件上也出现了同样的错误。
<DropDownMenu menuItems={menuItems} onChange={this._onItemClick}/>使用正确的事件道具名称为我解决了这个问题。
https://stackoverflow.com/questions/29786154
复制相似问题