如何捕获实时重新加载导致的组件卸载

Mic*_*ons 14 react-native

[编辑 - 我以为我正在使用Hot Reloading,但我实际上正在使用Live Reload]

我有一个原生插件,每次完成时都需要做一些清理工作.基本上我想防止这些错误:

Calling JS function after bridge has been destroyed: RCTDeviceEventEmitter.emit(..)
Run Code Online (Sandbox Code Playgroud)

componentWillUnmount()不会被调用.

小智 1

当文件更改时,实时重新加载将重新启动应用程序并将应用程序加载回初始路径。ComponentWillUnmount 不会被调用。

当您重新加载时,幕后发生的事情是反应上下文被破坏,并且正在创建一个新的上下文。

每当本机模块尝试使用旧的反应上下文来工作时,就会抛出该错误。

  • 从技术上讲,你已经回答了这个问题。真正的问题是如何捕获实时重新加载,以便可以告诉本机插件进行清理。目前,我在使用 .emit() 之前检查 CatalystInstance.isDestroyed() ,但这不是一个理想的解决方案。 (2认同)