我想在离线/在线时启动我的事件监听器并且我已经启动了我的应用程序,然后当我上线/离线时,我的事件应该在使用该应用程序时触发。
但是,当我的应用初始化时会触发。
class App extends Component {
handleFirstConnectivityChange(isConnected) {
console.log('Then, is ' + (isConnected ? 'online' : 'offline'));
NetInfo.isConnected.removeEventListener(
'connectionChange',
this.handleFirstConnectivityChange
);
}
componentDidMount(){
NetInfo.isConnected.fetch().then(isConnected => {
console.log('First, is ' + (isConnected ? 'online' : 'offline'));
});
NetInfo.isConnected.addEventListener(
'connectionChange',
this.handleFirstConnectivityChange
);
}
render() {
return (
<MenuProvider>
<RootNavigator />
<PushController/>
</MenuProvider>
);
}
};
答案 0 :(得分:0)
handleFirstConnectivityChange(isConnected) {
console.log('Then, is ' + (isConnected ? 'online' : 'offline'));
NetInfo.isConnected.removeEventListener(
'connectionChange',
this.handleFirstConnectivityChange
);
}
你在第一次打电话时正在移除听众,所以它不再听了。无论你是第一次被调用,你是在线还是离线。
答案 1 :(得分:0)
NetInfo.isConnected.fetch().then((isConnected) => {
console.log('First, is ' + (isConnected ? 'online' : 'offline'));
NetInfo.isConnected.addEventListener(
'connectionChange',
this.handleFirstConnectivityChange
);
});
放
的addEventListener
进入
NetInfo.isConnected.fetch()。然后
解决了这个问题。现在它只在使用应用程序时调用一次