React Native使用NetInfo对当前系统网络的判断
有网状态:

断网状态:

代码如下:
注意:第一次参考了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;
总结:
这个检测网络状态他是实时检测断网和联网状态的,可以保存状态,每次请求的时候直接取状态即可。
React Native使用NetInfo对当前系统网络的判断的更多相关文章
- React Native探索(五)使用fetch进行网络请求
相关文章 React Native探索系列 前言 React Native可以使用多种方式来请求网络,比如fetch.XMLHttpRequest以及基于它们封装的框架,fetch可以说是替代XMLH ...
- React Native专题-江清清
本React Native讲解专题:主要讲解了React Native开发,由基础环境搭建配置入门,基础,进阶相关讲解. 刚创建的React Native交流8群:533435865 欢迎各位大牛, ...
- React Native 常用插件案例
(二).基础入门: 1.React Native For Android环境配置以及第一个实例 2.React Native开发IDE安装及配置 3.React Native应用设备运行(Runnin ...
- Facebook React Native 配置小结
2015 年 9 月 15 号,React Native for Android 发布.至此,React 基本完成了对多端的支持.基于 React / React Native 可以: H5, And ...
- React Native 在 Airbnb(译文)
在Android,iOS,Web和跨平台框架的横向对比中,React Native本身是一个相对较新且快速开发移动的平台.两年后,我们可以肯定地说React Native在很多方面都是革命性的.这是移 ...
- React Native之Fetch简单封装、获取网络状态
1.Fetch的使用 fetch的使用非常简单,只需传入请求的url fetch('https://facebook.github.io/react-native/movies.json'); 当然是 ...
- React Native 在用户网络故障时自动调取缓存
App往往都有缓存功能,例如常见的新闻类应用,如果你关闭网络,你上次打开App加载的数据还在,只是不能加载新的数据了. 我的博客bougieblog.cn,欢迎前来尬聊. 集中处理请求 如果你fetc ...
- [React Native]获取网络状态
使用React Native,可以使用NetInfo API获取手机当前的各个网络状态. componentWillMount() { NetInfo.fetch().done((status)=&g ...
- android翻译应用、地图轨迹、视频广告、React Native知乎日报、网络请求框架等源码
Android精选源码 android实现高德地图轨迹效果源码 使用React Native(Android和iOS)实现的 知乎日报效果源码 一款整合百度翻译api跟有道翻译api的翻译君 RxEa ...
随机推荐
- Nginx 配置参数中文说明
Nginx配置参数中文详细说明: #定义Nginx运行的用户和用户组 user www www; # #nginx进程数,建议设置为等于CPU总核心数. worker_processes ; # #全 ...
- rabbitmq 配置多个消费者(转载)
Concurrency与Prefetch 在通常的使用中(Java项目),我们一般会结合spring-amqp框架来使用RabbitMQ,spring-amqp底层调用RabbitMQ的java cl ...
- window open() 方法
open() 方法用于打开一个新的浏览器窗口或查找一个已命名的窗口. 语法 window.open(URL,name,specs,replace) 参数 说明 URL 可选.打开指定的页面的URL.如 ...
- Pycharm----显示tab制表符
设置前: 设置后: 操作方法:
- django中权限控制到按钮级别
权限控制到按钮级别 : 1.思路 : 由于每个按钮都能认为是一个权限,所以每个按钮都会有一个自己的路径,这些路径都在用户登录时保存在了session ...
- 使用math中的hypot实现向量
from math import hypot class Vector: def __init__(self,x=0,y=0): self.x = x self.y = y def __repr__( ...
- python MySQL安装依赖报错的坑
0X01 问题 MySQL-python是python调用MySQL的常用库 通常安装时会遇到某些坑. EnvironmentError: mysql_config not found yum -y ...
- BZOJ 4864: [BeiJing 2017 Wc]神秘物质 (块状链表/平衡树 )
这就是一道数据结构裸题啊,最大极差就是区间最大值减最小值,最小极差就是相邻两个数差的最小值.然后平衡树splay/treap或者块状链表维护就行了. 第一次自己写块状链表,蛮好写,就是长..然后就BZ ...
- mysql 常见ALTER TABLE操作
删除列 alter table table-name drop col-name; 增加列(单列) alter table table-name add col-name col-type comme ...
- 032_备份 MySQL 的 shell 脚本(mysqldump 版本)
#!/bin/bash#定义变量 user(数据库用户名),passwd(数据库密码),date(备份的时间标签)#dbname(需要备份的数据库名称,根据实际需求需要修改该变量的值,默认备份 mys ...