【发布时间】:2015-04-22 01:29:22
【问题描述】:
我将我的 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: 我还刚刚将 reactify 从版本 1.0.0 升级到 1.1.0,并将 react-router-bootstrap(我实际上还没有使用)从 0.9.1 升级到 0.13。 0 基于@BinaryMuse 的 cmets - 没有变化。
更新 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
}
]
]
},
}
【问题讨论】:
-
这个问题听起来有点熟悉,但我不记得是什么原因造成的。确保您用于 JSX 转换的任何内容都是最新的。 (您应该能够删除
@jsx React.DOM杂注注释,并且像<Nav />这样的东西应该变成像React.createElement(Nav)这样的东西。 -
您的代码看起来不错(第 3 行缺少分号除外)。您是否在使用任何其他依赖于 React 的库?确保只有一个版本的 React 与您的应用程序捆绑在一起。
-
@BinaryMuse 我将 Reactify 从 v1.0.0 升级到 v1.1.0,但仍然出现错误。好主意!
-
@Morhaus,我更正了缺少的逗号,尽管它没有引起实际的变化。谢谢你的收获!
-
我为你添加了
react-d3标签。
标签: javascript d3.js reactjs typeerror react-d3