- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我有一个组件来跟踪设备的互联网连接,并在没有连接时显示一个红色的小横幅。一般来说,它工作正常:当您在应用程序中切换互联网时,横幅会出现并消失。
但是,如果您在没有互联网的情况下启动应用,它不会显示横幅。一旦您打开互联网,它将从此正常工作。
这是组件,OfflineNotice.tsx
:
import * as React from 'react';
import { NetInfo, StyleSheet, Text, View } from 'react-native';
interface State {
isConnected: boolean;
}
export class OfflineNotice extends React.Component<any, State> {
public state = {
isConnected: true,
};
public handleConnectivityChange = (isConnected: boolean) => {
if (isConnected !== this.state.isConnected) {
console.log('isConnected', isConnected);
this.setState({ isConnected });
}
};
public componentDidMount() {
NetInfo.isConnected.addEventListener(
'connectionChange',
this.handleConnectivityChange
);
}
public componentWillUnmount() {
NetInfo.isConnected.removeEventListener(
'connectionChange',
this.handleConnectivityChange
);
}
public render() {
if (!this.state.isConnected) {
return (
<View style={styles.container}>
<Text style={styles.offlineText}>
No Internet Connection
</Text>
</View>
);
}
return null;
}
}
最佳答案
作为JRK他在上面的评论中如此迅速地指出,解决方案很简单。连接变化触发事件,当你在没有互联网的情况下启动应用程序时,没有连接变化。
如果你initialise isConnected
in state as false
,当连接启动时事件将被触发.
最好的方法是在构造函数中:
constructor(props) {
super(props);
NetInfo.isConnected.fetch().then(isConnected => {
this.setState({isConnected});
});
}
如果你不这样做,而只是在 this.state
中将 isConnected
设置为 false
并在 中添加事件监听器code>componentDidMount
,在Android上无法正常运行。上述 Prop 来自 a comment 的 Terry Bazi到有关此主题的 Medium 文章。
您可以在 NetInfo 上的 React Native 文档中的示例中了解更多信息,尤其是关于 isConnected
属性的最后部分:https://facebook.github.io/react-native/docs/netinfo#properties-1
关于reactjs - 为什么在没有 Internet 的情况下启动应用程序时没有正确触发 React Native 的 NetInfo?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52596923/
netInfo React Native总是在ios模拟器中返回false NetInfo.isConnected.fetch().then(isConnected => { if (isCo
我在我的应用程序中使用 NetInfo,以检查它是否已连接到互联网。 NetInfo.isConnected.fetch().then( (isConnected) => { console.
我目前正在尝试在我的一个 native react 应用程序中实现网络服务调用并使用 react-native-web-service-handler调用 Get 和 Post Web API。 请看
当我从真实设备上关闭互联网连接时,它没有检测到我处于离线状态,但是当再次上线时,它会将值返回为 true。 import React from 'react'; import { SafeArea
我正在尝试在客户端 React Native 应用程序中实现离线(尚未添加 - 但也是低连接)网络错误弹出消息。 这是我的完整 View 代码: import React, {useState, us
我正在尝试在客户端 React Native 应用程序中实现离线(尚未添加 - 但也是低连接)网络错误弹出消息。 这是我的完整 View 代码: import React, {useState, us
我正在处理两个 PoC。 1)RNRestAPI。 2)RN导航。 在 RNRestAPI 中,index.android.js 和 index.ios.js 都是这样的; import React,
我在我的 react-native v0.49 应用程序上实现了检查互联网。 我正在使用 react-native 的 NetInfo。 当发生任何更改时,我添加 eventListener 它将调用
环境 Expo CLI 3.11.7 环境信息: 系统: 操作系统:Linux 5.0 Ubuntu 18.04.3 LTS(仿生海狸) shell :4.4.20 -/bin/bash 二进制文件:
我正在使用 react native 构建一个应用程序,但它不是仅在 ios 和 Android 中使用 axios 获取数据,它工作正常 当我使用 Netinfo 检查网络状态时,它返回未知 co
我遵循了“HandlerBar Labs”中有关“使用 Redux Persist 保存数据”的教程。在练习应用程序中一切正常,但当我尝试在实际应用程序中使用它时,我收到了该错误。以下是完整的错误消息
我正在使用 react-native-netinfo在我的应用程序中。在 iOS 中,它工作正常。但在 android 中总是返回 true。它没有互联网连接(WiFi 或移动数据)。它仍然返回 tr
我正在使用 Netinfo 检查 android-react-native 上的连接,我收到错误“要在 Android 上使用 NetInfo,请将以下内容添加到您的 AndroidManifest.
我有一个组件来跟踪设备的互联网连接,并在没有连接时显示一个红色的小横幅。一般来说,它工作正常:当您在应用程序中切换互联网时,横幅会出现并消失。 但是,如果您在没有互联网的情况下启动应用,它不会显示横幅
我已经从 更新了 React Native 版本0.57 到 0.59.1 .成功更新后,它会在 react native 信息中引发错误,因此我安装了@react-native-community/
我想在所有组件中测试用户是否已连接到互联网。 我可以在每个组件中使用 NetInfo,但由于我使用的是 redux,我认为使用中间件(?)可以更轻松地完成。 我用过 import { createSt
我们正在以下列方式使用 react-native NetInfo。 export default class NetworkStatus extends React.PureComponent {
当使用 react-native-web 时,NetInfo 适用于 Android 和 iOS,但不适用于 Web。 为了确认为 Web 运行的代码与 Android 相同,我在 component
我是一名优秀的程序员,十分优秀!