React Native使用NetInfo对当前系统网络的判断
2024-09-05 06:48:39
有网状态:
断网状态:
代码如下:
注意:第一次参考了http://www.hangge.com/blog/cache/detail_1614.html代码,一直显示的是unknow状态。。。
最后处理代码如下:
import React, { Component } from 'react';
import {
AppRegistry,
StyleSheet,
Text,
View,
NetInfo
} from 'react-native'; // 参考博客: http://blog.csdn.net/zzx2436125/article/details/77482308
import App from './App'; class Root extends React.Component { //构造函数
constructor(props) {
super(props);
this.state = {
isConnected: null,
connectionInfo: null
};
} //页面的组件渲染完毕(render)之后执行
componentDidMount() { //检测网络是否连接
NetInfo.isConnected.fetch().done((isConnected) => {
this.setState({isConnected});
}); //检测网络连接信息
NetInfo.fetch().done((connectionInfo) => {
this.setState({connectionInfo});
// alert(connectionInfo);
}); //监听网络变化事件
NetInfo.addEventListener('change', (networkType) => {
this.setState({isConnected: networkType})
alert(networkType);
})
} async componentWillMount() {
let connect = false;
const netChange = (isConnect) => {
// NetInfo.isConnected.removeEventListener('change', netChange);
connect = isConnect;
} // RN获取网络状态(true/false)
async function getNetWorkState() {
if (Platform.OS === 'ios') {
// alert(connect);
await NetInfo.isConnected.addEventListener('change', netChange);
return connect;
} else {
return await NetInfo.isConnected.fetch();
}
}
return await NetInfo.isConnected.addEventListener('change', netChange);
} // 移除监听
componentWillUnMount() {
NetInfo.removeEventListener('change', netChange);
} render() {
return (
<App />
)
}
} export default Root;
总结:
这个检测网络状态他是实时检测断网和联网状态的,可以保存状态,每次请求的时候直接取状态即可。
最新文章
- ZooKeeper 笔记(5) ACL(Access Control List)访问控制列表
- 【Android】achartengine的柱状图和饼状图的使用
- 【python】Head First Python(五)
- .NET Nancy 详解(四) Self Host
- paper 103:ELM算法
- MongoDB 的分组操作 In C#
- PHP----SAPI
- dubbo负载均衡策略及对应源码分析
- 是否是有效的dom节点--轮子代码
- POJ 3928 &;amp; hdu 2492 &;amp; Uva1428 PingPong 【树状数组】
- linux升级python3.6相关命令
- Spring Boot配置定时任务
- Java后台使用Websocket教程
- 多线程下载图片,同步下载http://www.importnew.com/15731.html
- ECMA Script 6_行为重定义 Proxy
- Win10安装.NetFamework3.5
- 当通过Nuget包管理器获取还原组时,出现 提示 “xxxxx”已拥有为“xxxxx”定义的依赖项
- SqlServer中的查询简单总结
- ES系列二、CentOS7安装ES head6.3.1
- java 对一个字符串进行加减乘除的运算
热门文章
- c线程使用锁控制并发
- 导弹拦截( 二分+dilworth定理)
- python3 基础二——基本的数据类型二
- Java与CC++交互JNI编程
- 【转】BSON数据格式
- The ";web.xml"; is called web application deployment descriptor
- 使用 webpack-bundle-analyzer 分析 webpack 代码库拆分块
- c语言1博客作业05
- Top k Largest Numbers
- Gym - 101955K Let the Flames Begin 约瑟夫环