У меня есть компонент для отслеживания интернет-соединения устройства и отображения маленького красного баннера, когда нет соединения.В целом, это работает правильно: когда вы находитесь в приложении и переключаете Интернет, баннер появляется и исчезает.
Однако, если вы запустите приложение без Интернета , оно не покажет баннер .Как только вы включите Интернет, он с этого момента будет работать правильно.
Вот компонент, 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;
}
}