首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >TabNavigator中的条件屏幕

TabNavigator中的条件屏幕
EN

Stack Overflow用户
提问于 2018-05-31 17:01:57
回答 1查看 1.8K关注 0票数 1

我的路由器是这样的。有没有一种方法可以让变量告诉你应该显示什么屏幕?

代码语言:javascript
复制
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

EN

回答 1

Stack Overflow用户

发布于 2018-05-31 18:08:48

我将向您展示我的包的工作流程,如果您仍然困惑,请随时询问。

router.js (处理屏幕)中:

代码语言:javascript
复制
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以检查记录了哪个帐户:

代码语言:javascript
复制
..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.jsindex.js中:

代码语言:javascript
复制
..import check variable from router.js

class app extends Component{
  render() {
    return <check/>;
  }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50620465

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档