我创建了一个自定义函数组件,它具有来自 NetInfo 的事件监听器用于 Internet 连接,它返回一个布尔值和方法名称。我想在每个类组件中调用该方法来检查互联网连接并使用布尔值来检查连接状态。
下面是我的代码。
//function Component
import React, { PureComponent, useEffect, useState } from 'react';
import NetInfo from "@react-native-community/netinfo";
export default () => {
const [isInternetReachable, setIsInternetReachable] = useState(false)
const InternetChecker = () => {
useEffect(() => {
// Subscribe
const unsubscribe = NetInfo.addEventListener((state) => {
setIsInternetReachable(state.isInternetReachable);
console.log("Connection type", state.type);
console.log("Is internet Reachable?", isInternetReachable);
});
return () => {
unsubscribe();
};
},[])
}
return [InternetChecker, isInternetReachable];
};
类组件试图访问 InternetChecker() 方法
class HomeScreen extends React.Component {
render() {
const { navigate } = this.props.navigation;
const [InternetChecker, isInternetReachable] = InternetHanlder();
// if (!isInternetReachable) {
// <NoNetworkSign />
// }
InternetChecker()
if (isInternetReachable){
console.log("Internet is Reachable");
} else {
console.log("No Internet Connection");
}
return (
<SafeAreaView style={styles.container}>
<View style={styles.container}>
</View>
</SafeAreaView>
)
};
当我尝试以上述方式访问时,我得到无效的钩子调用,只能从函数组件的主体内部调用钩子。我们如何从类组件中调用它。
任何帮助表示赞赏。