如何在反应原生中单击注销按钮后从loginscreen导航?

时间:2018-03-12 09:36:49

标签: javascript react-native logout stack-navigator

我正在尝试在native native中实现注销功能。用户将在登录后登陆homescreen,其中包含一个侧栏。注销按钮位于侧栏内。我正在使用反应导航中的堆栈导航器从一个屏幕导航到另一个屏幕。我尝试过如下,但是在点击退出时会出现错误,指向空白屏幕按钮。

onPressLogout(){
     AsyncStorage.removeItem('userdetail');
    this.props.navigation.navigate('LoginScreen');
    alert('You have been logged out.');
}

目前我正在homescreen内编写此代码。我在哪里编写注销代码?是否在Sidebar内?还有如何导航请帮忙。

更新

  const MainNavigator = TabNavigator({
         login: {screen: LoginScreen},
         register: { screen : RegisterForm },
  },

     {
  tabBarPosition: 'bottom',
  animationEnabled: true,
  color:"#aa4a00",
  tabBarOptions: {
    labelStyle: {
      fontSize: 15,
      fontFamily: 'HelveticaNeueBd',
      color: '#4B4C4B',
      backgroundColor: '#ffffff'
    },
    indicatorStyle : {
      backgroundColor: '#aa4a00'
    },
    style : {
      borderBottomColor: '#ebcccc',
     // borderBottomWidth: 10,
    },
    tabStyle: {
    activeBackgroundColor : "#aa4a00",
    inactiveBackgroundColor: '#dddddd',
    upperCaseLabel: false
  }
  }
     });
const StackScreens = StackNavigator({
    Main: {
        screen: MainNavigator,
    },
    CourseListing:{screen: CourseListing},
    Home: {screen: HomeScreen},
    EconomicNews: {screen: EconomicNews},
    EconomicDetails: {screen: EconomicDetails},
    CategoryDetail: {screen: CategoryDetail},
    DetailedView: {screen: DetailedView},
    IndividualSection: {screen: IndividualSection},
    Mcq:{screen: Mcq},
    QASection: {screen: QASection}
})

export const MyDrawer = DrawerNavigator({
   Home: {
     screen: StackScreens,
  },
  Profile: {
      screen: Profile
  },
  FAQ: {
      screen: Faq
  },
  LogOut: {
      screen: LogOut
  }
});

1 个答案:

答案 0 :(得分:2)

this.props.navigation.navigate('LoginScreen');应更改为this.props.navigation.navigate('MainNavigator');this.props.navigation.navigate('login');

因为您致电LoginScreen login