从“react-native”导入 NetInfo 在 iOS 和 android 上效果很好。虽然,现在尝试从@react-native-community/netinfo(版本 3.2.1)导入它,在 android 上运行没有问题,但在 iOS 上以重复的方式启动addEventListener
. 但是@react-native-community/netinfo(第 4 版. .适用于 iOS,无需重复循环)。
这是我带有控制台的简单代码:
import NetInfo from '@react-native-community/netinfo'
onChangeConnexion() {
NetInfo.isConnected.fetch().then(isConnected => {
console.log("hello world!")
if(isConnected) {
this.setState({ netIsConnected: true, netMessage: "" }, () => {
})
} else {
this.setState({ netIsConnected: false, netMessage:
NO_CONNECTION_TRAD[_this.props.lang] })
}
});
}
componentWillUnmount() {
NetInfo.isConnected.removeEventListener('connectionChange',
this.onChangeConnexion)
}
componentDidMount() {
NetInfo.isConnected.addEventListener('connectionChange',
this.onChangeConnexion) // ON CHANGE
}
你好世界 !在启动应用程序时以循环方式编写。这意味着addEventListener
不间断地调用。是因为我使用的是 netInfo 的旧 api 吗?