【问题标题】:NetInfo in react-native is returning isConnected as false even when network is connected即使网络已连接,react-native 中的 NetInfo 也将 isConnected 返回为 false
【发布时间】:2017-07-28 05:06:22
【问题描述】:

我们正在通过以下方式使用 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 库中的错误吗?有办法解决吗?

使用的版本:

“反应”:“16.0.0-alpha.6”

"react-native": "0.44.0",

【问题讨论】:

标签: react-native


【解决方案1】:

你必须改变

NetInfo.addEventListener(
 'change',
 this.onConnectivityChange
); 

NetInfo.addEventListener(
 'connectionChange',
 this.onConnectivityChange
);

【讨论】:

    【解决方案2】:

    如果你在模拟器中遇到这个问题,那是因为网络连接,因为一旦你关闭互联网连接,react-native 使用套接字来运行应用程序,套接字就会中断,即使你打开它,套接字也不会恢复。请尝试在实际手机或发布模式下使用它。它工作正常。

    componentDidMount() {
        NetInfo.isConnected.addEventListener('connectionChange', this.handleConnectivityChange)
      }
    
      componentWillUnmount() {
        NetInfo.isConnected.removeEventListener('connectionChange', this.handleConnectivityChange)
      }
    
      handleConnectivityChange = (isConnected: any) => {
        if (isConnected) {
          this.setState({ isConnected })
        } else {
          this.setState({ isConnected })
        }
      }
    

    【讨论】:

      【解决方案3】:

      我在尝试修复使用 0.57.8 的旧应用程序上的相同问题时遇到了问题。

      将我们的反应原生的NetInfo had a bug 变成了后来修复的。

      为了解决这个问题,我必须更改代码以使用来自 @react-native-community/netinfo 的 NetInfo,而不是使用 react native 附带的代码。

      我希望这可以帮助其他人。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-09-09
        • 2017-10-20
        • 1970-01-01
        • 2016-02-18
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多