Te damos la bienvenida a nuestro sitio web, en este sitio hallarás la resolución a lo que buscas.
Solución:
Actualmente hay un problema abierto sobre esto en el github de react native.
Puede ver la discusión allí, pero en resumen: el fetch
siempre está regresando false
pero puede evitarlo escuchando el evento de cambio de conexión.
Ejemplo de código de allí:
componentDidMount()
NetInfo.isConnected.addEventListener('change', this.handleConnectionChange);
NetInfo.isConnected.fetch().done(
(isConnected) => this.setState( status: isConnected );
);
componentWillUnmount()
NetInfo.isConnected.removeEventListener('change', this.handleConnectionChange);
handleConnectionChange = (isConnected) =>
this.setState( status: isConnected );
console.log(`is connected: $this.state.status`);
Editar:
Parece que se ha trabajado en este problema. También, change
evento fue renombrado a connectionChange
. Código de solución actualizado:
componentDidMount()
NetInfo.isConnected.addEventListener('connectionChange', this.handleConnectionChange);
NetInfo.isConnected.fetch().done(
(isConnected) => this.setState( status: isConnected );
);
componentWillUnmount()
NetInfo.isConnected.removeEventListener('connectionChange', this.handleConnectionChange);
handleConnectionChange = (isConnected) =>
this.setState( status: isConnected );
console.log(`is connected: $this.state.status`);
Actualizado:
los change
el tipo de evento está en desuso. Considere usar el connectionChange
tipo de evento.
Si para ti ha resultado de ayuda este artículo, agradeceríamos que lo compartas con el resto desarrolladores de este modo contrubuyes a difundir nuestra información.