2017-07-10 5 views
2

Nach dem Konvertieren der App zu redux, meine react-navigation bekam ein Problem. Zuvor, vor dem Integrieren mit Redux, wenn ich die Zurück-Taste (Physikalische Taste) rege-navigiere zurück zum vorherigen Bildschirm. Nach der Integration mit Redux schließt die Zurück-Taste die App. Aber es funktioniert immer noch mit goBack() Funktion.Reagieren Navigation + Redux schließen App auf Zurück gedrückt

Und das ist mein Navigator Konfiguration

export const AppNavigator = StackNavigator(
    { 
     Home: { screen: HomeScreen }, 
     ChatDetail: { screen: ChatDetail }, 
     PulsaDetail: { screen: PulsaDetailScreen }, 
     Pulsa: { screen: Pulsa } 
    }, 
    { 
     headerMode: 'none', 
    } 
) 

class AppWithNavigation extends Component { 
    render(){ 
     return(
      <AppNavigator navigation={ addNavigationHelpers({ 
       dispatch: this.props.dispatch, 
       state: this.props.nav, 
      })} /> 
     ) 
    } 
} 

const mapStateToProps = (state) => ({ 
    nav: state.nav 
}) 

export default connect(mapStateToProps)(AppWithNavigation) 

EDIT: Es ist sein kann getan mit manuellem Griff & Rücksendung Aktion, aber es kann es nicht automatisch tun? wie zuvor mit redux?

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

Antwort

2

Nach Post Github Problem im React-Navigation-Repository, bekam ich die Antwort.

Sollte manuell hinzufügen die Rückseite Hörer oben auf Bildschirm/Komponente

// App.js 
import { BackAndroid } from 'react-native' 
// [...] 
    componentDidMount() { 
    BackAndroid.addEventListener('backPress',() => { 
     const { dispatch, nav } = this.props 
     if (shouldCloseApp(nav)) return false 
     dispatch({ type: 'Back' }) 
     return true 
    }) 
    } 

    componentWillUnmount() { 
    BackAndroid.removeEventListener('backPress') 
    } 
// [...] 
Verwandte Themen