我们以如下方式使用react-native NetInfo。
export default class NetworkStatus extends React.PureComponent {
constructor(props){
super(props);
NetInfo.addEventListener(
'change',
this.onConnectivityChange
);
}
onConnectivityChange = (status) => {
NetInfo.isConnected.fetch().then(isConnected => {
console.log('*********Network status ' + (isConnected ? 'online' :
'offline'));
});
}
字符串
在离线模式下启动应用程序。我们得到了以下控制台。
- 网络状态离线。
然后我们打开WiFi,它是连接的。但我们得到了两次离线控制台。
- 网络状态离线。
- 网络状态离线。
这是NetInfo Library中的一个错误吗?有没有办法修复它?
使用的版本:
“react”:“16.0.0-alpha.6”
“react-native”:“0.44.0”,
4条答案
按热度按时间8qgya5xd1#
你必须改变
字符串
到
型
htrmnn0y2#
如果你在模拟器中遇到这个问题,那是因为网络连接,因为react-native使用套接字来运行应用程序,一旦你关闭互联网连接,套接字就会中断,即使你打开它,套接字也不会恢复。请尝试在实际手机或发布模式下使用它。它工作正常。
字符串
qvsjd97n3#
我在尝试修复一个使用0.57.8的旧应用程序上的相同问题时对此进行了讨论。
把我们的React本地的NetInfo had a bug,后来被修复。
为了解决这个问题,我不得不更改代码,从@react-native-community/netinfo使用NetInfo,而不是react native附带的代码。
我希望这可以帮助其他人。
qfe3c7zg4#
如果你在iOS上进行测试,也许这就是问题所在:在不同的Wi-Fi之间切换不会在iOS中发送事件