2016-10-09 8 views
0

ich React Native mit Redux für einen Chat Android App bin mit.Reagieren india kein Internet Abstürze holen

In meiner Anwendung habe ich eine Aktion, die die api wie folgt holen:

this.props.actions.getMessages(someID) 

Diese componentDidMount() im Chat Komponente Lebenszyklus aufgerufen wird.

auch in meiner App im Stammcontainer prüfe ich, wenn ich Internetverbindung haben, wenn ich nicht eine modale über alles zeigen.

Mein Problem ist wie folgt: Wenn das Chat-Komponente Halterungen und ich meine Internetverbindung verlieren, dann Absturz App.

Ich mache etwas falsch? Wie kann ich aufhören zu holen, wenn ich keine Internetverbindung habe?

Antwort

0

versuchen Sie, die Verbindung jedes Mal zu überprüfen, wenn es ab und an geht, wo Sie getMessages aufrufen. dieser Schnipsel mit Ihnen überprüfen können, wenn die Verbindung auf und ab geht:

componentDidMount() { 
    const dispatchConnected = isConnected => this.props.dispatch(setIsConnected(isConnected)); 

    NetInfo.isConnected.fetch().then().done(() => { 
    NetInfo.isConnected.addEventListener('change', dispatchConnected); 
    }); 
} 
+0

Dank @ Mark, mache ich dies zum Beispiel, aber manchmal gehe ich Seite chatten und vor holen die erfolgreich ist deaktiviere ich die Internetverbindung , dann zeigt die Offline-Seite stattdessen den Absturz an. – Anderson

+0

Warum nicht den Wert der Verbindungsüberprüfung in einem Zustand speichern und an die benötigten Seiten übergeben? Dann im Render mit einem if/else die gewünschte Seite anzeigen? – Mark

+0

Ich spare, ich habe isConnected in Auth Reducer, aber mein Problem ist, dass der Benutzer die Verbindung verloren in der Mitte des Abrufen der Daten die App stürzt ab. In einfacheren Worten Benutzer hat Verbindung -> User Anfrage -> Fetch ist unvollendet -> Benutzer Verbindung verloren -> Crash – Anderson