Javascript 是否在应用程序关闭时删除侦听器?
假设我在Javascript 是否在应用程序关闭时删除侦听器?,javascript,reactjs,react-native,Javascript,Reactjs,React Native,假设我在componentDidMount中注册了以下侦听器: NetInfo.isConnected.addEventListener('connectionChange', this.props.connectionChange) 我需要该侦听器在应用程序运行时始终处于活动状态 在这种情况下,是否需要调用removeEventListener,或者在应用程序关闭后将其删除?当组件将卸载时,或者当状态为不活动时,可以删除侦听器 componentDidMount() { AppS
componentDidMount
中注册了以下侦听器:
NetInfo.isConnected.addEventListener('connectionChange', this.props.connectionChange)
我需要该侦听器在应用程序运行时始终处于活动状态
在这种情况下,是否需要调用
removeEventListener
,或者在应用程序关闭后将其删除?当组件将卸载时,或者当状态为不活动时,可以删除侦听器
componentDidMount() {
AppState.addEventListener('change', this.handleAppStateChange);
}
componentWillUnmount() {
//remove listener here
AppState.removeEventListener('change', this.handleAppStateChange);
}
handleAppStateChange = (nextAppState) => {
if (nextAppState === 'inactive') {
//remove listener here
}
}
希望这能解决您的问题我正在使用wix导航,不幸的是没有根组件。这意味着我需要在多个组件中复制此逻辑,因此我的问题是。如果没有必要删除事件侦听器,因为它将在应用程序关闭时被删除,那么我不需要实现此逻辑。通常,您所要做的就是在componentWillUnmount函数中删除侦听器,这将处理问题,但不会,在componentWillUnmount内部没有根组件来处理此问题-我需要复制逻辑,您将事件附加到哪里?在wix navigation中,你可以一次删除一个根目录,而我需要在应用程序启动后启动侦听器。考虑以下流程:条目(根开始侦听器,init app)->登录(新根)-d盘(新根)。在这种情况下,当根被更改时,将调用组件-ununStand,从条目中删除监听器。我需要在登录和仪表板中启动/删除相同的侦听器。我希望这是有道理的