使用DrawerNavigation退出导航

时间:2016-10-19 19:40:39

标签: react-native exponentjs

我根据Ex-navigation's example

构建了我的导航

一切都按预期工作,但我不知道如何退出

我有一个<Main/>组件,在示例中呈现<DrawerNavigationMenu/> 这是我的<DrawerNavigationMenu/>

render() {
return (
  <DrawerNavigation
    renderHeader={this._renderHeader}
    drawerWidth={300}
    initialItem="home">
    <DrawerNavigationItem
      id="home"
      selectedStyle={styles.selectedItemStyle}
      renderTitle={isSelected => this._renderTitle('Home', isSelected)}
      renderIcon={isSelected => this._renderIcon('md-home', isSelected)}>
      <StackNavigation
        id="home"
        defaultRouteConfig={{
          navigationBar: {
            backgroundColor: '#2497b7',
            tintColor: '#fff',
            height: 60,
          },
        }}
        initialRoute={Router.getRoute('home')}/>
    </DrawerNavigationItem>

    <DrawerNavigationItem
      id="logout"
      selectedStyle={styles.selectedItemStyle}
      renderTitle={isSelected => this._renderTitle('Logout', isSelected)}
      renderIcon={isSelected => this._renderIcon('md-exit', isSelected)}>
      <StackNavigation
        id="root"
        initialRoute={Router.getRoute('root')}/>
    </DrawerNavigationItem>
  </DrawerNavigation>
);
}

在“退出”项我需要重置导航堆栈并渲染我的Root场景而无法返回

我尝试使用initialStack=代替initialRoute=,就像这样

<StackNavigation
 id="root"
 initialStack={[Router.getRoute('root')]}/>

但是当我回击(Android)时,它仍然会回到Home场景。我这里没有明确使用Redux。这是实施退出导航的正确方法吗?有任何想法吗?请!

1 个答案:

答案 0 :(得分:1)

提供DrawernavigationItem道具onPress并调用在身份验证和登陆页面之间切换的功能。

<DrawerNavigationItem
     id="Sign out"
     selectedStyle={styles.selectedItemStyle}
     onPress={()=>{this.signOut()}}
     renderTitle={isSelected => this._renderTitle('Sign out', isSelected)}
   />