reactjs - 当我关闭互联网连接时,它没有显示来自 NetInfo.isConnect 函数的错误值

标签 reactjs react-native networking

当我从真实设备上关闭互联网连接时,它没有检测到我处于离线状态,但是当再次上线时,它会将值返回为 true。

import React from 'react';
import {
  SafeAreaView,
  StyleSheet,
  View,
  Text,
  StatusBar,
  Image,
  TouchableOpacity,
  FlatList,
  NetInfo
} from 'react-native';

export default class App extends React.Component {
    componentDidMount() {
        NetInfo.isConnected.addEventListener('connectionChange',
        this.handleConnectivityChange);  
    }

    componentWillUnmount() {
        NetInfo.isConnected.removeEventListener('connectionChange', 
        this.handleConnectivityChange);
    }
    handleConnectivityChange = (isConnected) => {
        console.log(isConnected ? 'connected':'not connected')
    }

到目前为止,我没有在这里提到 render()。

最佳答案

使用 React Native Community's NetInfo 因为 RN's version is deprecated .

RNC 版本仅在添加监听器时接受回调。

它应该是:

import NetInfo from "@react-native-community/netinfo";

export default class App extends React.Component {

  constructor(props) {
    super(props)
    this.unsubscribe = null
  }

  componentDidMount() {
    this.unsubscribe = NetInfo.addEventListener(
      this.handleConnectivityChange
    );
  }

  componentWillUnmount() {
    this.unsubscribe();
  }

  handleConnectivityChange = (state) => {
    console.log(state.isConnected ? 'connected': 'not connected')
  }

  render() {...}
}

关于reactjs - 当我关闭互联网连接时,它没有显示来自 NetInfo.isConnect 函数的错误值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57766348/

相关文章:

java - Jboss Netty - 如何使用 3 个工作线程服务 2 个连接

reactjs - 使用 Typescript 创建 React App 中的自定义代理

javascript - React ES6 SystemJS - 未捕获( promise )错误 : Unexpected token <(…)

css - 如何连续放置内容并防止 react native 溢出?

ios - EAS 构建 - rsync 错误 : some files could not be transferred (code 23) error

windows - 如何在 Windows 中获取或更改已断开连接的 NIC 的 IP 地址?

javascript - 热图不清晰

javascript - 提供给 `selectRow` 的 `string` 类型的无效 Prop `BootstrapTable`,预期为 `object`

reactjs - 我需要从手机麦克风获取音频流并在linux中播放

linux - 我可以使用静态 IP 检测已配置连接设备的网络和网络掩码吗