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

时间:2017-08-15 04:40:40

标签: react-native

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

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

Calling JS function after bridge has been destroyed: RCTDeviceEventEmitter.emit(..)

componentWillUnmount()不会被调用。

2 个答案:

答案 0 :(得分:0)

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

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

通过使用旧的react上下文,每当本机模块尝试工作时,都会引发该错误。

答案 1 :(得分:0)

您可以使用如下所示的内容: Error Boundary in react

只需将容易出错的代码包装在ErrorBoundary组件中,例如

<ErrorBoundary><childComponentCausingError></ErrorBoundary>

在ErrorBoundary组件中,您只需在componentDidCatch =(error,info)=> {

}

componentDidCatch()是React中的生命周期方法。