React Native NetInfo always returns offline

旧时模样 提交于 2019-12-23 15:22:50

问题


I'm currently trying to implement some functionality in my react native app where I use information stored locally if the device is offline, and perform a fetch if the device is online.

I used NetInfo after reading this How to handle network failure in React-Native, when network is off, but unfortunately I ran into an error where NetInfo always returns offline. I found this github issue, which recommended that I change the host in RCTReachability.m from 'htpp://apple.com' to 'apple.com'. However, I couldn't find a file with that name in the project directory. Instead I found the only mention of 'apple.com' in any file, which was in RCTNetInfo.m, which was in the correct form.

Does anybody know a way to fix this problem? Or possibly a different way to go about performing one action if the device is online, and another if the device is offline?

Here's the relevant code:

fetchData() {
    NetInfo.isConnected.fetch().done((isConnected) => {
        console.log('First, is ' + (isConnected ? 'online' : 'offline'));
        if ( isConnected )
        {
            fetch(REQUEST_URL)
            .then((response) => response.json())
            .then((responseData) => {
                store.save('contacts', responseData.feed.entry)
                .then(() => store.get('contacts'))
                .then((contacts) => {
                    this.setState({
                        dataSource: this.state.dataSource.cloneWithRows(contacts),
                        isLoading: false
                    });
                })
            })
            .catch((error) => { console.error(error); });
        }
        else
        {
            store.get('contacts')
            .then(contacts => {
                if (contacts == null)
                {
                    this.setState({
                        dataSource: this.state.dataSource.cloneWithRows(CONTACT_DATA),
                        isLoading: false
                    });
                }
                else
                {
                    this.setState({
                        dataSource: this.state.dataSource.cloneWithRows(contacts),
                        isLoading: false
                    });
                }
            })
        }
    });


}

来源:https://stackoverflow.com/questions/38730904/react-native-netinfo-always-returns-offline

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!