我正在尝试在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
}
});
答案 0 :(得分:2)
this.props.navigation.navigate('LoginScreen');
应更改为this.props.navigation.navigate('MainNavigator');
或this.props.navigation.navigate('login');
因为您致电LoginScreen
login