使用React 0.59但挂钩不起作用

时间:2019-12-04 17:42:13

标签: reactjs react-native react-hooks

在我的应用中,我正在使用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

1 个答案:

答案 0 :(得分:2)

发生这种情况的原因是因为您使用的是不匹配版本的react和react native。

如果您查看changelog,它说React版本位于16.8.3,因此您应该更改为该版本,而不要使用最新的React版本。

或者只是将本机反应升级到最新版本以匹配您的反应版本。

您还可以看到React Native的latest version没有使用最新版本的react。