我最近开始使用 React Native。我对热重载和实时重载功能很感兴趣。但是,热重载并没有完全按照其应有的方式工作(即时更改)。我了解热重载和实时重载之间的区别。
问题是,每当我在文件中进行更改(例如
profile.js
)时,都会有一个工具提示显示 Hot Reloading..
,但我所做的更改并未反映出来。现在要明确的是,我只是更改 TextView 的字体大小,它位于渲染函数内。但是,如果我转到另一项活动然后返回 profile.js
,它会反映更改。
我做错了什么,还是热重载功能中的错误?
完全欢迎任何我可以找到答案的其他地方的链接。
热重载并不适用于所有情况。当发生需要重建整个捆绑包的更改时,在这种情况下它将无法工作。像文本更改这样的小更改,或不需要构建整个项目的任何其他琐碎更改应该可以正常工作。用于验证其是否有效。
观察屏幕是否有变化。如果没有尝试升级 React Native cli 或重新安装。
这耗费了我长达 2 个工作日的时间。 我的应用程序突然无法热重载。
我终于找到了解决办法,问题出在你的看守人身上。所以重新安装它:
rm -rf /usr/local/var/run/watchman && brew uninstall watchman && brew install watchman
我遇到了类似的问题,热重载不适用于主屏幕。在某些时候,我检查过它是否在其他屏幕上工作,并且在那里一切正常。经过一些尝试将问题范围缩小到特定的事情后,我发现 HMR 不起作用,因为
if
语句逻辑。我的主屏幕正在检查用户是否已登录,并根据此情况加载一个或另一个组件。我刚刚制作了我正在处理的组件,因为当前主屏幕呈现出单个屏幕,并且 HMR 工作得非常完美。完成后,我将其移回主屏幕。这并不是适用于所有情况的解决方案,但在我的情况下 - 它有效。