我正在我正在开发的 react-native 应用程序中运行单元测试,其中三个失败并显示以下消息:
TypeError: Cannot read property 'ReactCurrentOwner' of undefined
错误似乎不是由我的代码引起的,而是由 react-test-renderer
(在两个测试中)和 enzyme-adapter-react-16
引起的>(在一项测试中)。
这是一个 expo 应用程序,单元测试正在运行。然后我弹出了。我换了
"jest": {
"preset": "jest-expo"
},
与
"jest": {
"preset": "react-native"
},
我的所有其他测试都在运行。三个失败的测试是唯一使用 react-test-renderer
和 enzyme-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(它们是
最初使用该版本安装),一切正常。 - 在另一个项目中,我有 react 和 react-dom 15.4.2 并更新了它们
通过删除 node_modules 更改版本到 16.2.0
package.json 并没有从头开始安装所有依赖项
帮助。我不得不将 react-test-renderer 回滚到 15.4.2 并且只有
然后我设法解决了这个问题。不知道有没有
这是与项目或环境相关的问题,但我从未安装过 全局 react 或 react-dom。
所以尝试让 react-test-renderer 与你的 react 和 react-dom 版本相同。
关于react-native - 类型错误 : Cannot read property 'ReactCurrentOwner' of undefined,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47204569/