小编典典

将React升级到0.13.2会导致:“未捕获的TypeError:无法读取null的属性'_currentElement'”

reactjs

我将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: 我还基于@BinaryMuse的评论,将reactify从1.0.0版本升级到1.1.0,并将react-router-
bootstrap(我尚未真正使用)从0.9.1升级到0.13.0-没变化。

更新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
        }
      ]
    ]
  },
}

阅读 334

收藏
2020-07-22

共1个答案

小编典典

我已经弄清楚了。它归结为同一个问题render函数发现反应-D3linechart/DataSeries。该函数通过对数据数组的第一个元素进行采样来检查数据类型。但是,它不提供任何检查以查看数据数组是否为空。

我曾经看到过来自以下方面的错误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的发行说明,但没有发现任何说明为什么会发生此新错误的信息。我还没来得及看一下diff的代码。

我没有连接这两个错误,因为LineChart仍然有部分抛出,Uncaught TypeError: Cannot read property 'x' of undefined所以我只是假定该Uncaught TypeError: Cannot read property '_currentElement' of null错误是由升级引起的新错误,并且掩盖了其他无法读取的x错误。

我将很快提交一个pull-react -d3的请求来解决这个问题。感谢大家的帮助。

更新: 这是请求请求

2020-07-22