iOS:NetInfo.isConnected返回始终为false

时间:2018-02-13 12:19:23

标签: ios xcode reactjs react-native

netInfo React Native始终在ios模拟器中返回false

NetInfo.isConnected.fetch().then(isConnected => {
    if (isConnected == true) {
        this.setState({isOnline: true})
        this.checkForToken()
    }
    else {
        this.setState({isOnline: false})
        this.checkTokenOffline()
    }
});

NetInfo.isConnected.fetch().then().done(() => {
    NetInfo.isConnected.addEventListener('connectionChange', (isConnected) => this.dispatchConnected());
})

1 个答案:

答案 0 :(得分:3)

这是一个known bug,它总是假的。您需要附加一个监听器并使用它。

yourFunction = () => {
    NetInfo.isConnected.fetch().then(isConnected => {
        //Always false, so ignore/do nothing here
    });
    NetInfo.isConnected.addEventListener(
        'connectionChange',
        this.handleFirstConnectivityChange
    );
}

handleFirstConnectivityChange = (isConnected) => {
    if (isConnected == true) {
        this.setState({isOnline: true})
        this.checkForToken()
    }
    else {
        this.setState({isOnline: false})
        this.checkTokenOffline()
    }
}