【发布时间】:2019-02-07 12:24:06
【问题描述】:
我有三个简单的屏幕:登录、仪表板和关于。
我想创建一个可以在屏幕之间导航的抽屉菜单。如果我没有登录,我希望登录屏幕可以让我进入我有抽屉的仪表板。在那里我可以点击退出,然后我回到登录屏幕。如果我已经登录,我希望第一个屏幕是包含抽屉的仪表板。此外,如果我单击退出以导航到登录。
问题是:在我按下注销按钮并返回登录屏幕后。我无法再登录(仪表板仍在堆栈中,因为如果我按下后退按钮,它会让我到达那里)。并且抽屉也出现在登录屏幕中
const RootStackLogin = createStackNavigator(
{
Login: {
screen: Login,
},
Dashboard: {
screen: Dashboard,
},
App: {
screen: App,
navigationOptions: ({navigation}) => ({
header:null
})
}
},
{
initialRouteName: 'Login',
}
const RootStackDashboard = createStackNavigator(
{
Login: Login,
App: {
screen: App,
navigationOptions: ({navigation}) => ({
header:null
})
}
},
{
initialRouteName: 'App',
}
这是我的 Splash 类中的渲染方法的外观:
if (this.state.isAuth) {
return (
<RootStackDashboard/>
)
}
return (
<RootStackLogin/>
)
这是我的抽屉:
const AppDrawerNavigator = createDrawerNavigator({
Dashboard: {
screen: Dashboard,
},
Login: {
screen: Login,
},
About: {
screen: About,
},
},
{
contentComponent: CustomContentComponent
})
【问题讨论】:
-
有什么问题?
-
问题:如果我理解正确,您希望根据用户是否登录有两个不同的 stackNavigator,对吗?然后在注销后您希望被重定向到您的登录屏幕以便能够再次登录?
-
@kivul,正是
-
@CristiDumitrache 检查我的答案,看看是否能解决您的问题
-
我会给你提示 1) 你需要嵌套导航 2) 在初始屏幕中使用导航 3) 用户注销时使用重置
标签: reactjs react-native navigation-drawer react-navigation