ApolloError tiene prop de networkError , pero se configura cuando el servidor responde con un código de estado 4** o 5**.
¿Y cómo verificar que el problema se deba a una mala conexión a Internet?
try { apolloClient.query(someQuery) } catch (error) { if (isInternetConnectionError(error)) { // how to check this? Alert.alert('Please check your internet connection!') } else { logException(error); } }Parece que no hay una buena manera de obtener eso (buen trabajo, Apolo), pero este es el estado de error exacto que aparece cuando no hay Internet:
export const isNetworkError = (error: unknown) => { return ( error instanceof ApolloError && error.message === 'Network request failed' && error.graphQLErrors.length === 0 && error.clientErrors.length === 0 && error.networkError && Object.keys(error.networkError).length === 0 ); }; Real para "@apollo/client": "3.4.7"
O aquí hay una versión mucho más corta que debería funcionar:
export const isNetworkError = (error: unknown) => { return ( error instanceof ApolloError && error.message === 'Network request failed' ); };