在我的应用程序中,我使用的是 react 版本 16.12.0(最新的稳定版本(。反应原生在 0.59.10 中。
但是当我尝试使用反应钩子(如useEffect,useState等(时,总是如此。我收到一个错误,说useState
未定义,所以我不能使用它。
我试图安慰.log使用状态并未定义。这毫无意义,因为反应版本内部已经有钩子了。
当我运行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
发生这种情况的原因是因为你使用的是 react 和 react native 的不匹配版本。
如果你看一下更新日志,它说反应版本在16.8.3
所以你应该改成它,而不是使用最新的反应版本。
或者只是将 react native 升级到最新版本以匹配您的 react 版本。
您还可以看到最新版本的 react native 没有使用最新版本的 react。