首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >升级反应0.13.2原因:“未登录的TypeError:无法读取属性'_currentElement‘的空”

升级反应0.13.2原因:“未登录的TypeError:无法读取属性'_currentElement‘的空”
EN

Stack Overflow用户
提问于 2015-04-22 01:29:22
回答 5查看 25.1K关注 0票数 26

我将从0.12.2升级到0.13.2,将React路由器从0.12.4升级到0.13.2。只做这两次升级而不做其他任何事情,现在加载我的网页/应用程序时,我会得到以下错误:

代码语言:javascript
复制
Uncaught TypeError: Cannot read property '_currentElement' of null

有什么原因吗?我似乎提到了一个潜在的反应-路由器错误,但没有明确的。

导致错误的特定行是:

代码语言:javascript
复制
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

代码语言:javascript
复制
{
  "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
        }
      ]
    ]
  },
}
EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2015-04-22 18:59:04

我已经想明白了。这可以归结为render函数在反应d3linechart/DataSeries中发现的一个问题。该函数通过采样数据数组的第一个元素来检查数据的类型。然而,它没有提供任何检查来检查数据数组是否为空。

我以前看到过来自LineChart的错误

代码语言:javascript
复制
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不久,以纠正这个问题。谢谢你们的帮助。

更新: 这是拉请求。

票数 12
EN

Stack Overflow用户

发布于 2015-04-28 22:55:36

我的0.13.2也有同样的问题,但是,我错误的原因和解决方法有点不同:

这个错误归结于我的npm版本。自从升级(现在是2.8.4)和运行npm更新-g npm以来,我一直在使用npm2.1.4,我可以在不接触package.json或其他任何东西的情况下实现所有的工作。

如果这对你有用,请告诉我!

票数 3
EN

Stack Overflow用户

发布于 2015-05-23 20:50:00

如果可以的话,我在使用坏事件名称DropDownMenu (onItemChange而不是onChange)的Material组件上也出现了同样的错误。

代码语言:javascript
复制
    <DropDownMenu menuItems={menuItems} onChange={this._onItemClick}/>

使用正确的事件道具名称为我解决了这个问题。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29786154

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档