我的项目结构如下:
Tab navigator
|-Tab1
|-Tab2
|-stack navigator
|-login
|
screen1
|
screen2
|
screen3
|-Tab3
|-Tab4
当我输入登录屏幕的用户名和密码后,我希望我的堆栈导航器路由从screen1开始。有什么办法可以做到这一点? 我们可以重新路由/更改堆栈导航器的路由吗?
答案 0 :(得分:1)
使用SwitchNavigator更改/重新路由屏幕堆栈
我没有使用React Navigation V2,如果需要有关RNV2的更多信息,应检查文档
下面是一个示例TODO
:
在router.js中(处理屏幕):
const Tab = TabNavigator({
Customer : {
screen: Customer,
}
});
const TabLogged = TabNavigator({
Handyman: {
screen: Handyman,
}
});
// here's the key to handle which account is logged
export const Check = SwitchNavigator({
Auth: Auth,
Account1: Tab,
Account2: TabLogged
})
创建Auth.js来检查是否登录了哪个帐户:
class foo extends React.component{
componentWillMount(){
this.props.navigation.navigate(usertype == "isLoggedIn" ? 'Account2' : 'Account1');
}
render(){
<View>
<ActivityIndicator size="large" color="#0000ff" />
<StatusBar barStyle="default" />
</View>
}
}
以及在您的app.js或index.js中:
class app extends Component{
render() {
return <check/>;
}
}