Expo.io - 模块 JSTimersExecution 不是已注册的可调用模块

Expo.io - Module JSTimersExecution is not a registered callable module

我使用 the React Native offical docs 设置了一个 React-Native 应用程序。但是在我的 iphone 中从 Expo 应用程序查看应用程序时,我不断收到此错误消息 Module JSTimersExecution is not a registered callable module。调用堆栈附在此处。

我做了一些 Google,但没有发现任何有用的东西。

有人以前遇到过这个错误吗?

在 package.json 中,我将 react-native 设置回 0.46.1,这似乎有效。

我在将 react-native 升级到 0.47.1 时遇到了同样的错误,我查看问题并将 react-native 设置回 0.46.4,它起作用了!

你有没有用过Expo?如果是这样,RN 0.47.x 目前不受 Expo 支持。 (source)

确保将 app.json 更改为与 package.json 中相同的 expo 版本。并且 确保您使用的是与您安装的 expo 版本对应的 React-Native 版本。您可能需要升级您的 Expo 应用程序。如果这不起作用并且您的版本匹配:

  • 停止你的服务器
  • rm -rf node-modules(甚至可能删除 your.lock 文件)
  • npm i / yarn
  • 然后启动它 npm start 或使用 expo
  • 然后,如果您在终端中启动 Shift + R 以重新启动包并清除缓存,或者如果您正在使用它,请在 expo 中按重新启动。

https://blog.expo.io/expo-sdk-v20-0-0-is-now-available-79f84232a9d1

当我离开 iOS 模拟器 运行 时,我 运行 在升级 expo 时进入了这个。快速重启 iOS 模拟器解决了这个问题。

如果您正在为您的 react-native 项目使用 cocoapods,请记住在升级 react 后 运行 pod install

我遇到了与 expo:20.0.5 和 react-native:0.47.1 相同的问题。我将 react-scripts 升级到 1.3.0。然后我重新启动了模拟器,npm start 成功了。