2017-12-04 2 views
0

ネイティブスタックナビゲータは、アプリケーションのすべてのページから既定のルート(initialroutename)をホームページに移動します。数ページから前のページに移動し、数ページから後ろのページに移動しません。バックハンドラーはこの場合でも助けにはならない。どのように私は引き出しNavigatorのこのネイティブスタックナビゲータに返す戻るハンドラ

 class AppNavigator extends Component { 

     constructor(props) { 
     super(props) 
     this.handleBackButtonClick = this.handleBackButtonClick.bind(this); 
    } 

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

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

    handleBackButtonClick() { 
     this.props.navigation.goBack(); 
     return true; 
    } 

     render() { 
     return; 
     } 
    } 

    export default AppNavigator; 

コードを達成することができます。すべての経路もここで定義されています。

 import React from "react"; 
    import { DrawerNavigator } from "react-navigation"; 

    import Home from "./components/home/"; 
    import SideBar from "./components/sidebar"; 
    import Dashboard from "./components/Dashboard/"; 
    import Profile from "./components/Profile" 
    import Contact from "./components/Contact" 
    import Terms from "./components/terms" 
    import Links from "./components/Links" 
    import Register from "./components/Register" 
    import Discover from "./components/Discover/"; 



    const Drawer = DrawerNavigator(
     { 
     Home: { screen: Home }, 
     Dashboard: { screen: Dashboard }, 
     Discover: { screen: Discover } 
     Profile : {screen: Profile}, 
     Contact: { screen: Contact}, 
     Terms: { screen: Terms}, 
     Links: { screen: Links}, 
     Register: { screen: Register, 
      navigationOptions: { 
      title: "FirstPage", 
      header: { 
       left: null, 
      } 
      }, }, 

     }, 
     { 
     initialRouteName: "Home", 
     contentOptions: { 
      activeTintColor: "#e91e63" 
     }, 
     drawerPosition: 'right', 
     contentComponent: props => <SideBar {...props} /> 
     } 
    ); 



    export default Drawer; 

答えて

0

なぜバックイベントを処理していますか?代わりに、ナビゲーションresetプロパティを使用してルートを0にリセットし、ステークが空であるためにユーザーは元に戻ることはありません

関連する問題