2017-03-07 55 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