Quiero mostrar una pantalla específica cuando la aplicación pierde la conexión a Internet, el código adjunto funciona una vez cuando la aplicación se abre desde el fondo.
algún consejo
import { useNetInfo } from '@react-native-community/netinfo'; export default () => { const netInfo = useNetInfo(); useEffect(() => { SplashScreen.hide(); }, []); return netInfo.isConnected ? ( <SafeAreaProvider> <Provider store={store}> <App /> </Provider> </SafeAreaProvider> ) : ( <NoInternet /> ); };prueba esto
useEffect(() => { NetInfo.fetch().then(state => { console.log("Connection type", state.type); console.log("Is connected?", state.isConnected); if(state.isConnected==false) naviagtion.navigate("yourscreenname") }); const unsubscribe = NetInfo.addEventListener(state => { console.log("Connection type", state.type); console.log("Is connected?", state.isConnected); setConnectionStatus(state.isConnected) }); return unsubscribe },[])Probaría la accesibilidad en lugar de la conexión. Algo como esto debería funcionar. Cuando verifique por primera vez, la accesibilidad actual devolverá nulo. En lugar de parpadear sin vista de Internet, creo que es mejor establecerlo como verdadero por defecto.
import { useNetInfo } from '@react-native-community/netinfo'; export default () => { const netInfo = useNetInfo(); const [reachable, setReachable] = useState(true); useEffect(() => { SplashScreen.hide(); const unsubscribe = NetInfo.addEventListener(state => { setReachable(state.isInternetReachable == null? true : state.isInternetReachable) }); return unsubscribe }, []); return reachable ? ( <SafeAreaProvider> <Provider store={store}> <App /> </Provider> </SafeAreaProvider> ) : ( <NoInternet /> ); };Tome la variable de estado para la conexión a Internet en contexto o redux, la he implementado en muchas aplicaciones como esta. intenta usar el siguiente código.