在创建了新的React Native应用程序之后,重新加载效果非常好。几天后,重新加载完全不起作用,我需要重新启动打包程序。
我是React Native的新手。我假设Watchman会触发通知打包程序以重新打包应用程序,然后在iOS模拟器上重新加载(Cmd + R)即可。
为了消除可能起作用的组件,我从Watchman开始,在前台启动Watchman:
watchman --foreground --logfile=/dev/stdout
然后在一个文件夹中,我观察当前的文件夹watchme
:
watchman watch .
我在vim中打开的名为blah.txt
的文件夹中有一个测试文件,一旦这样做,前台Watchman进程就会记录以下内容:
[notify 0x7fed12000018 /Users/-/Scratch/watchme] kFSEventStreamEventFlagRootChanged /Users/-/Scratch/watchme, cancel watch
如果我保持打开状态,请重新启动Watchman,然后编辑并保存文件,上述“取消监视”消息也会出现。
kFSEventStreamEventFlagRootChanged
表示监视的目录已更改(重命名/移动),但尚未更改,仅目录中的文件已更改。
这种情况发生后,Watchman不再监视,并且我怀疑这是React Native重新加载无法正常工作的根本原因。
我已经尝试了各种已阅读的解决方案(重新启动,重新安装值班员以及其他看似随机的whack-a-mole方法),但是对我来说kFSEventStreamEventFlagRootChanged
是意外的。
我的假设是否正确?作为React Native的新手,这个流程对我来说仍然是新手。 kFSEventStreamEventFlagRootChanged
是否不是打开/编辑文件的奇怪事件?