我正在尝试制作一个导航应用程序,如果用户尚未登录,那么我将获得一个包含3个屏幕(欢迎,登录,注册)的堆栈导航。 如果我已经登录,那么我将更改导航,现在我可以使用抽屉式导航来始终显示带有关闭会话按钮的抽屉。 App.js通过其状态决定使用一种导航还是另一种导航。 问题在于,由于导航,我无法修改app.js的状态,以便再次呈现它并采取相应的操作。
在它是一个内部的导航抽屉之前,它构成了堆栈的导航。 问题是抽屉必须显示一个从API消耗掉的QR码。第一次启动会话时未显示QR码,因为自应用程序启动以来便已经绘制了抽屉。因此,我不得不改变做事的逻辑。
export default class App extends Component {
constructor(props){
super(props);
this.state = {
loading:true,
isLogged:false
}
}
render(){
let loading = this.state.loading;
let logged = this.state.isLogged;
if(loading != false){
return(<Bienvenida />)
}else{
if(logged){
return(<Navigation />)
}else{
return (<UserNavigation />)
}
}
}
}
答案 0 :(得分:0)
在这种情况下,我建议使用 ColA ColB
0 1.0 NaN
1 7.0 7.0
2 NaN NaN
3 9.0 9.0
4 10.0 10.0
。
switchNavigator允许您像浏览网页一样浏览低谷屏幕,破坏以前的最新屏幕。
结构类似于:
switchNavigator
当用户未登录时,您的堆栈将处理所有部分。然后,当用户登录后,您可以从堆栈传递到抽屉。
与以后注销时相同,从抽屉中导航到堆栈
有关更多信息:https://reactnavigation.org/docs/en/switch-navigator.html