react-native – 本地检查与NetINFO的互联网连接
发布时间:2020-12-15 20:11:39 所属栏目:百科 来源:网络整理
导读:我在我的react-native v0.49应用程序上实现了检查互联网. 我正在使用反应原生的NetInfo. 我在发生任何更改时添加了eventListener,它将调用函数. 但是当我在模拟器和真实设备中进行测试时,我只得到第一个更改,但如果我从Wifi断开连接,我看不到任何变化. inter
我在我的react-native v0.49应用程序上实现了检查互联网.
我正在使用反应原生的NetInfo. 我在发生任何更改时添加了eventListener,它将调用函数. 但是当我在模拟器和真实设备中进行测试时,我只得到第一个更改,但如果我从Wifi断开连接,我看不到任何变化. internetConnectionPopUp import React,{ Component } from 'react'; import { View,Text,NetInfo } from 'react-native'; // styles import { style } from './style'; import { globalStyle } from '../../assets/styles/globalStyle'; // redux import {connect} from 'react-redux'; import * as actions from '../../actions'; class InternetConnectionPopUp extends Component { constructor(props){ super(props); this.state = { connectionInfo : '' } this.handleFirstConnectivityChange = this.handleFirstConnectivityChange.bind(this); } handleFirstConnectivityChange(connectionInfo) { this.setState({ connectionInfo: connectionInfo.type }) console.log('First change,type: ' + connectionInfo.type + ',effectiveType: ' + connectionInfo.effectiveType); } componentWillMount () { NetInfo.getConnectionInfo().then((connectionInfo) => { this.setState({ connectionInfo: connectionInfo.type }) //console.log('Initial,effectiveType: ' + connectionInfo.effectiveType); }); NetInfo.addEventListener( 'connectionChange',this.handleFirstConnectivityChange ); } componentWillUnmount() { NetInfo.removeEventListener( 'connectionChange',handleFirstConnectivityChange ); } render() { return ( <View> <Text> ComponentName component </Text> <Text> { this.state.connectionInfo } </Text> </View> ); } } export default InternetConnectionPopUp; 解决方法
我可以重现您的错误,它适用于我将componentWillMount更改为componentDidMount.我认为React有一个内部错误调用this.setState,因为组件尚未挂载(所以它可以重新渲染任何东西).
希望能帮助到你 :) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |