Expo.io - 模块 JSTimersExecution 未注册为可调用模块。

12

我使用React Native官方文档建立了一个React-Native应用。但当我在我的iPhone上通过Expo应用查看应用时,一直收到这个错误信息模块JSTimersExecution未注册为可调用模块。附带了呼叫栈。

Expo error[1]

我进行了一些Google搜索,但没有找到有用的信息。

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


为什么不直接使用Expo SDK? - EnriqueDev
@EnriqueDev,我只是遵循https://facebook.github.io/react-native/docs/getting-started.html。 - long.luc
1
尝试使用https://expo.io/tools,下载他们的SDK并从那里开始工作。这样更加有用、完整,并且具有功能快捷方式。 - EnriqueDev
解决了您的问题吗? - EnriqueDev
1
当我升级Expo => 19.0.0和React-Native => 0.47.1时,我遇到了相同的错误,你解决了这个问题吗? - J brian
7个回答

10
请确保将 app.json 文件与你的 package.json 中的 Expo 版本号保持一致。同时,请确保你使用的 React-Native 版本与你安装的 Expo 版本相对应。 可能需要升级你的 Expo 应用程序。如果这些都没有解决问题并且版本号匹配:
  • 停止服务器
  • rm -rf node-modules(甚至还要删除你的.lock文件)
  • npm i / yarn
  • 然后启动它 npm start 或使用 expo
  • 然后如果你在终端中启动了 Shift + R 以重新启动包并清除缓存,或者如果你使用的是 Expo,则按重启按钮。

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


请注意,除了在 app.json 中更新 Expo 版本之外,我还需要在模拟器上升级我的 Expo 应用程序(我编辑了此答案以澄清这一点)。 - Kevin Cooper

3

当我将react-native升级到0.47.1时,遇到了相同的错误。我查看了问题并将react-native降回到了0.46.4,它可以正常工作!


3
这只是避免而非解决 :) 请参见 @Russell Maxfield 的答案,以获取可行的解决方案。 - Kevin Cooper

2

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


1
如果您在React Native项目中使用CocoaPods,请记得在升级React后运行pod install

0

我也遇到了跟 expo:20.0.5 和 react-native:0.47.1 相同的问题。我升级了 react-scripts 到 1.3.0 版本,然后重新启动了模拟器和 npm start,问题得以解决。


0

你有用过Expo吗?如果是的话,Expo目前不支持RN 0.47.x版本。(source


现在随着expo v20的发布 - Clintm

0
在升级Expo时,我遇到了这个问题,当时我的iOS模拟器还在运行。重新启动iOS模拟器就解决了问题。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接