我对RNavigation中的条件渲染有疑问,
假设我有3个标签(“首页”,“上传”,“个人资料”)。
如果用户已经登录,我需要处理Upload screen
,
实际上我已经创建了自己的Context包含isLoggedin
,但是我不知道如何在Routes.js
中使用它
const TabNavigator = createMaterialTopTabNavigator({
Home:{ screen:Home },
Upload:{ screen:Upload }, // here i need to handle if user not logged in yet i want to use screen:PleaseLogin
//Upload:this.context.User.isLoggedin ? {screen:Upload} : {screen:PleaseLogin}
Profile:{ screen:Profile },
})
我认为这种情况与使用createSwitchNavigator
的{{3}}不同
我该如何实现?
编辑:
我不知道如何在
this.context
中添加Routes.js
,因为Routes.js
不是react component
答案 0 :(得分:0)
您可以尝试
Upload:{ screen:this.context.User.isLoggedin ? Upload : PleaseLogin },
答案 1 :(得分:0)
您可以在要设置 this.context.User.isLoggedin 的位置添加全局变量
global.isLoggedin = this.context.User.isLoggedin;
然后
Upload:{ global.isLoggedin ? Upload : PleaseLogin },