我的路由器是这样的。有没有一种方法可以让变量告诉你应该显示什么屏幕?
export const HomeNavigator = TabNavigator({
...
Search:{
screen: usertype == 1? Customer : Handyman,
},
...
});
export const RootStack = StackNavigator({
Login: {screen: Login}
Home:{screen: HomeNavigator},
...
},{
headerMode: 'none'
});
export default RootStack;
在用户登录他的帐户后,应用程序将检查他的帐户类型。然后,他的帐户类型会告诉他应该在Search选项卡中显示什么屏幕
如果用户的帐户类型为1,则应显示的屏幕为customer.js
如果用户的帐户类型为2,则应显示的屏幕为Handyman.js
发布于 2018-05-31 18:08:48
我将向您展示我的包的工作流程,如果您仍然困惑,请随时询问。
在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
以检查记录了哪个帐户:
..import
class foo extends React.component{
componentWillMount(){
this.props.navigation.navigate(usertype == 1 ? 'Account1' : 'Account2');
}
render(){
<View>
<ActivityIndicator size="large" color="#0000ff" />
<StatusBar barStyle="default" />
</View>
}
}
在你的app.js
或index.js
中:
..import check variable from router.js
class app extends Component{
render() {
return <check/>;
}
}
https://stackoverflow.com/questions/50620465
复制相似问题