2017-03-07 64 views
4

我试图检查用户是否连接到互联网。我使用的NetInfo像这样(从文件):检查网络连接是否返回错误结果

componentDidMount() { 
    NetInfo.isConnected.addEventListener('change', this.handleConnectionChange); 

    NetInfo.isConnected.fetch().done(
     (isConnected) => { this.setState({ status: isConnected }); } 
    ); 
} 

componentWillUnmount() { 
    NetInfo.isConnected.removeEventListener('change', this.handleConnectionChange); 
} 

handleConnectionChange = (isConnected) => { 
     this.setState({ status: isConnected }); 
     console.log(`is connected: ${this.state.status}`); 
} 

奇怪的是,第一次加载,我正在做这个工作正常屏幕。但是,当我开始打开/关闭我的wifi时,结果会有所不同:有时它会在某个时间检测不到。有人有同样的问题?

回答

5

根据我的经验,当使用React Native NetInfo类时,互联网连接重新连接时,iOS模拟器不会'注意'。

这很烦人。但是,对我而言,它可以在真实设备上按预期工作。

+0

谢谢,本。我会在一个真实的设备上测试。 – jazzdle

+1

是的,它在设备上正常工作。非常感谢! – jazzdle

+0

不改变任何东西的相同逻辑不适用于Android(设备)。如果我停止了互联网并开启了它,但它在第一次显示屏幕时不起作用。 – jazzdle