2017-09-18 4 views
0

ich verwendet habe, reagieren-Navigation und auf Hardware-Back-Button in Android klicken, komme ich zur vorherigen Komponente zurück, aber componentWillMount nicht genannt bekommt. Wie stelle ich sicher, dass componentWillMount aufgerufen wird?Während der Wiedergabe von reagieren Navigation componentWillMount kommt nicht aufgerufen

+0

möglich duplizieren https://stackoverflow.com/questions/39514572/react-router-redux-navigating-back-doesnt-call-componentwillmount –

Antwort

0

Funktioniert diese Antwort von @bumbur? Es definiert eine globale Variable, die verfolgt, wenn sich der Navigationszustand geändert hat. Sie könnten einen Code einfügen, um zu sehen, ob Sie sich in der spezifischen Registerkarte befinden, an der Sie interessiert sind. Damit könnten Sie einen Aufruf von componentWillMount() auslösen.

Wenn Sie nicht wollen, redux verwenden, das ist, wie Sie global Informationen über die aktuelle Route speichern können, so können Sie sowohl eine Registerkarte Änderung und auch sagen, erkennen, welche Register jetzt aktiv ist.

https://stackoverflow.com/a/44027538/7388644

export default() => <MyTabNav 
    ref={(ref) => { this.nav = ref; }} 
    onNavigationStateChange={(prevState, currentState) => { 
     const getCurrentRouteName = (navigationState) => { 
     if (!navigationState) return null; 
     const route = navigationState.routes[navigationState.index]; 
     if (route.routes) return getCurrentRouteName(route); 
     return route.routeName; 
    }; 
    global.currentRoute = getCurrentRouteName(currentState); 
    }} 
/>; 
Verwandte Themen