2017-07-18 2 views
2

Ich habe diesen Code auf jedem meiner Bildschirme. Drücken Sie die Androide Back-Taste zurück 1 Bildschirm. Android Zurück-Taste erneut drücken tut nichts. Das erwartete Ergebnis wäre, solange es mehr Bildschirme im Stapel gibt, zurückzukehren. Was fehlt?BackHandler geht nicht mehr als 1 Bildschirm zurück

componentWillMount() { 
    BackHandler.addEventListener('hardwareBackPress',() => { 
     this.props.navigation.goBack(); 
     return true; 
    }); 
} 

componentWillUnmount() { 
    BackHandler.removeEventListener('hardwareBackPress') 
} 

Antwort

4

Nach ein paar Versuchen funktioniert dieser Code wie erwartet. Ich glaube, dass mein ursprünglicher Code den Ereignis-Listener nicht wirklich entfernte.

componentWillMount() { 
    BackHandler.addEventListener('hardwareBackPress', this.backPressed); 
} 

componentWillUnmount() { 
    BackHandler.removeEventListener('hardwareBackPress', this.backPressed); 
} 

backPressed =() => { 
    this.props.navigation.goBack(); 
    return true; 
} 
+0

Ich bekomme Fehlermeldung "Kann Property Navigation von undefined". Was kann das Problem sein? –

+0

Wenn Sie mit react-navigation arbeiten, versuchen Sie es so einzurichten, wie es in den Dokumenten der Fall ist. https://reactnavigation.org/docs/guides/redux#Handling-the-Hardware-Back-Button-in-Android –

Verwandte Themen