为什么当我保存更改时,expo 不刷新?

Pat*_*nda 8 react-native expo

当我进行更改并保存它们时,我的模拟器中的应用程序没有被刷新;我认为模拟器未连接到地铁服务器。

我试图通过运行 expo -r -c 来清除缓存,但这没有任何作用。

请你帮助我好吗。

小智 21

您是否尝试启用快速刷新?我遇到了同样的问题,但是在启用“快速刷新”后,自动刷新又开始工作了。要启用快速刷新,您只需摇晃智能手机并点击“启用快速刷新”。

  • 注意:如果使用 Android Studio 模拟器,请按 Ctrl + M 打开菜单,然后单击“启用快速刷新”。 (4认同)

Car*_*cia 8

[2022 年更新]

\n

有时听起来多么奇怪,即使使用上面或我在开始时提供的其他解决方案并不总是有效,有时世博会似乎只是堆栈。 \n一种似乎有效的方法是更改​​连接类型或只是连接(从 wifi 到另一个) )

\n

初步回答:

\n

希望这能帮助其他人避免腰部时间。

\n

如果上述解决方案不起作用(摇动或刷新整个 Expo 服务器),另外 2 个替代方案是:

\n

第一个选项:

\n

在服务器运行的项目目录中时按:

\n
 r  \n
Run Code Online (Sandbox Code Playgroud)\n

\xe2\x94\x82 --> 它将重新加载应用程序

\n

2 选项:转到您的设备设置,找到 Expo Go 并强制停止或清理缓存,然后重新打开它。\n不幸的是,我注意到这还不够,还需要启动您的 Metro 服务器。

\n


小智 6

如果您最近更新了 Expo 版本,则可能需要更新或删除overrides定义其使用的 Metro 版本的resolutions部分。package.json

您可以通过检查package-lock.json. 我在下面找到了我的:"node_modules/@react-native-community/cli-plugin-metro"

就我而言,我必须从以下位置切换:

  "overrides": {
    "metro": "0.76.0",
    "metro-resolver": "0.76.0"
  },
  "resolutions": {
    "metro": "0.76.0",
    "metro-resolver": "0.76.0"
  }
Run Code Online (Sandbox Code Playgroud)

转到:

  "overrides": {
    "metro": "0.76.7",
    "metro-resolver": "0.76.7"
  },
  "resolutions": {
    "metro": "0.76.7",
    "metro-resolver": "0.76.7"
  }
Run Code Online (Sandbox Code Playgroud)

npx expo installExpo 会自动使用您运行时安装的 Metro 版本npx expo start。因此,在许多情况下,删除覆盖和解析可能是正确的修复方法。