在我的应用中,我正在使用React版本16.12.0(最新的稳定版本)。反应本征为0.59.10。
但是总是在尝试使用react钩子(如useEffect,useState等)时,出现一个错误,提示useState
是未定义的,所以我不能使用它。
我尝试用console.log记录useState并不确定。这没有任何意义,因为react版本已经在其中添加了钩子。
当我运行react-native info
时,我明白了:
React Native Environment Info:
System:
OS: macOS 10.14.6
CPU: (16) x64 Intel(R) Core(TM) i9-9880H CPU @ 2.30GHz
Memory: 79.72 MB / 16.00 GB
Shell: 3.2.57 - /bin/bash
Binaries:
Node: 8.11.4 - ~/.nvm/versions/node/v8.11.4/bin/node
Yarn: 1.17.3 - /usr/local/bin/yarn
npm: 5.6.0 - ~/.nvm/versions/node/v8.11.4/bin/npm
Watchman: 4.9.0 - /usr/local/bin/watchman
SDKs:
iOS SDK:
Platforms: iOS 13.2, DriverKit 19.0, macOS 10.15, tvOS 13.2, watchOS 6.1
IDEs:
Android Studio: 3.5 AI-191.8026.42.35.5977832
Xcode: 11.2.1/11B500 - /usr/bin/xcodebuild
npmPackages:
react: ^16.12.0 => 16.12.0
react-native: ^0.59.5 => 0.59.10
答案 0 :(得分:2)
发生这种情况的原因是因为您使用的是不匹配版本的react和react native。
如果您查看changelog,它说React版本位于16.8.3
,因此您应该更改为该版本,而不要使用最新的React版本。
或者只是将本机反应升级到最新版本以匹配您的反应版本。
您还可以看到React Native的latest version没有使用最新版本的react。