【问题标题】:useNetInfo not working when connection is reestablished重新建立连接时 useNetInfo 不起作用
【发布时间】:2022-01-04 01:01:44
【问题描述】:

我正在使用react-native-netinfo 来跟踪我设备的互联网连接。在互联网断开连接并重新打开之前,它大部分时间都运行良好。此时NetInfo 没有以正确的互联网状态响应。

在查看 github 上的 repo 时,看起来这是一个尚未修复的已知问题。在其中一个线程中,提到了使用钩子 useNetInfo 代替,因为显然它仍然可以正常工作。

所以我尝试了这里提到的https://github.com/react-native-netinfo/react-native-netinfo/issues/400#issuecomment-953177841,但是当再次建立连接时,即使这样也没有返回正确的状态。

我不知道现在该做什么。我不知道这个钩子是否还有更多内容,或者是否需要以不同的方式实现。

【问题讨论】:

    标签: ios react-native react-native-community-netinfo


    【解决方案1】:

    我所做的是在 componentDidMount() 中添加一个事件侦听器,并在 componentWillUnMount() 中删除该侦听器。

    componentDidMount(){
     NetInfo.isConnected.fetch().then(isConnected => {
                    this.handleConnectivityChange(isConnected === undefined ? true : isConnected);
                });
                NetInfo.isConnected.addEventListener(
                    'connectionChange',
                    this.handleConnectivityChange
                );}
    

    我的 handleConnectivityChange() 函数将 isConnected 布尔值存储在 redux 中,以便在我想要的任何地方使用。

    componentWillUnMount() {
    NetInfo.isConnected.removeEventListener(
                'connectionChange',
                this.handleConnectivityChange
            );
    }
    

    【讨论】:

    • 能否添加这个例子的源码。当 NetInfo 是 react-native 的一部分时,我在旧文档中找到了这个示例
    • 是的,我使用的 NetInfo 来自 @react-native-community/netinfo。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-09-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多