react-native - 在课堂上使用@react-native-community/netinfo,可能吗?
问题描述
我正在尝试向我的应用程序添加一个功能,以添加一个视图,向用户表明他已与 Internet 网络断开连接。
所以我去@react-native-community/netinfo 设置它,但我很快发现自己遇到了使用钩子的困难和相关的错误:“ Invalid hook call. Hooks can only be called inside of the body of a function component
”。
那么如何在基于类的应用程序上集成@react-native-community/netinfo?
我想在检测到连接状态更改时更改应用程序的状态,以显示或不显示指示断开状态的视图。
您的帮助将不胜感激!
这是我用于测试的内容:
解决方案
库中有一个可以开箱即用的钩子,称为 useNetInfo() ,您可以像这样使用它:
编辑:
您可以阅读此答案,以便将此挂钩用于基于类的应用程序。这类似于 netInfo。
来自 git,react-native-community 的示例
import {useNetInfo} from "@react-native-community/netinfo";
const YourComponent = () => {
const netInfo = useNetInfo();
return (
<View>
<Text>Type: {netInfo.type}</Text>
<Text>Is Connected? {netInfo.isConnected.toString()}</Text>
</View>
);
};
编辑2:
完整示例:
import React from 'react'
import { SafeAreaView, Text } from 'react-native'
import { useNetInfo } from '@react-native-community/netinfo'
export default class Home extends React.Component {
constructor(props) {
super(props)
this.state = {
netInfo: undefined
}
}
setNetInfo = netInfo => {
this.setState({netInfo})
}
render () {
return (
<SafeAreaView>
<SetNetInfo setNetInfo={this.setNetInfo} />
<Text>Hello world</Text>
</SafeAreaView>
)
}
}
const SetNetInfo = ({ setNetInfo }) => {
const netInfo = useNetInfo()
React.useEffect(() => {
setNetInfo(netInfo)
},[netInfo])
return null
}
推荐阅读
- javascript - NodeJS & express 使用 Promise 实现 HTTP 模块的 catch 写入功能
- python - matplotlib 图表中感兴趣的阴影区域
- java - Java中数组矩阵中的点积
- excel - Microsoft Excel - 条件格式以将列中的单元格与不同列的同一行中的单元格匹配
- cloud - 在谷歌云中运行集成测试
- php - 避免重新创建 AltoRouter 实例和映射路线的更好方法
- python-3.x - 与多个小部件的交互散景
- sql-server - Azure SQL - 使用异地复制自动调整 - 服务器处于未指定状态和查询存储已达到其容量限制
- react-native - 使用 Native Base Toast 显示来自 Redux 操作的错误
- python - Python / Plotly甘特图:在时间线上指示当前日期的标记?