类型错误: 无法读取未定义的属性'ReactCurrentOwner'



我正在开发的反应本机应用程序中运行单元测试,其中三个失败并显示以下消息:

TypeError: Cannot read property 'ReactCurrentOwner' of undefined

该错误似乎不是由我的代码引起的,而是由react-test-renderer(在两个测试中)和enzyme-adapter-react-16(在一个测试中)引起的。

这是一个博览会应用程序,单元测试正在运行。然后我弹出了。我替换了

"jest": {
  "preset": "jest-expo"
},

"jest": {
  "preset": "react-native"
},

我的所有其他测试都在运行。三个失败的测试是唯一使用 react-test-rendererenzyme-adapter-react-16 .

我已经尝试(多次)删除node_modules并重新安装。以下是我正在使用的版本:

"devDependencies": {
  "babel-preset-react-native-stage-0": "^1.0.1",
  "deep-freeze": "^0.0.1",
  "enzyme": "^3.1.1",
  "enzyme-adapter-react-16": "^1.0.4",
  "eslint": "^4.9.0",
  "jest": "^21.2.1",
  "react-dom": "^16.0.0",
  "react-test-renderer": "^16.0.0"
},
"scripts": {
  "start": "react-native start",
  "android": "react-native run-android",
  "ios": "react-native run-ios",
  "test": "jest"
},
"jest": {
  "preset": "react-native"
},
"dependencies": {
  "assert": "^1.4.1",
  "react": "16.0.0",
  "react-native": "^0.50.1",
  "react-redux": "^5.0.6",
  "redux": "^3.7.2",
  "yarn": "^1.3.2"
}*

我也遇到了这个问题,并通过安装相同版本的 react、react-dom 和 react-test-renderer 来修复它。

一些背景:

  • 我有一个项目,其中提到的包是 16.2.0(它们是
    最初使用该版本安装),一切正常。
  • 在另一个项目中,我有反应和反应dom 15.4.2并更新它们通过删除node_modules
    更改版本到 16.2.0package.json 并从头开始安装所有依赖项并没有
    帮助。我不得不将反应测试渲染器回滚回 15.4.2 并且只有
    然后我设法解决了这个问题。我不知道是否
    这是与项目或环境相关的问题,但我从未安装在全球范围内做出反应或反应。

因此,请尝试使 react-test-renderer 与你的 react 和 react-dom 版本相同。

为了其他有相同问题的人的利益:当我清理我的全局node_modules并将reactreact-native和其他一些东西只留在项目的node_modules时,它得到了修复。

似乎

您需要更新reactreact-domreact-test-renderer16.3.2

似乎其中一个是 16 alpha,尚未得到官方支持。

"react": "^16.3.2",
"react-dom": "^16.3.2",
"react-test-renderer": "^16.3.2"

更多详情如下:

https://github.com/facebook/create-react-app/issues/2526#issuecomment-308081573

相关内容

  • 没有找到相关文章

最新更新