库中有一个可以开箱即用的钩子,称为 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
}