Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Reactjs 在CreateBoottomTabNavigator导航中有条件地渲染路线_Reactjs_React Native_Conditional Statements_React Navigation - Fatal编程技术网

Reactjs 在CreateBoottomTabNavigator导航中有条件地渲染路线

Reactjs 在CreateBoottomTabNavigator导航中有条件地渲染路线,reactjs,react-native,conditional-statements,react-navigation,Reactjs,React Native,Conditional Statements,React Navigation,在react本机应用程序中,我希望有条件地在导航菜单中呈现路线。我使用react导航createBottomTabNavigator作为我的导航菜单 该条件基于用户角色,并通过api调用检索 api调用不会在初始加载时发生 我正在使用mobx状态树进行应用程序状态管理,角色存储在MST存储中 我必须用observer装饰顶级容器createAppContainer,当观察到的角色发生变化时,我希望重新渲染。在顶层重新渲染似乎效率低下,而且我无论如何都无法使其正常工作 就我而言,不可能通过reac

在react本机应用程序中,我希望有条件地在导航菜单中呈现路线。我使用react导航
createBottomTabNavigator
作为我的导航菜单

该条件基于用户角色,并通过api调用检索

api调用不会在初始加载时发生

我正在使用
mobx状态树
进行应用程序状态管理,角色存储在MST存储中

我必须用
observer
装饰顶级容器
createAppContainer
,当观察到的角色发生变化时,我希望重新渲染。在顶层重新渲染似乎效率低下,而且我无论如何都无法使其正常工作

就我而言,不可能通过
react navigation
提供的HOC传递道具。我不能将它们封装在组件中以实现这一点,因为它们被用作HOC的参数

对于一些结构澄清,我使用以下HOC

  • createAppContainer
    用于包装我的应用程序。我通过了一个考试
  • createSwitchNavigator
    并将
  • createBottomTabNavigator
    被多次传递
  • createStackNavigator
    ,通过实际屏幕。这些是需要有条件地呈现的
//如何在此级别有条件地呈现
函数screenExcluder(){
常数堆栈={
一些导航器,
//...
}
log(“MainTabNavigator,profilestore”,)
if(UserStore.isRegularUser){
stacks.ProfileStack=ProfileStack
stacks.SettingsStack=SettingsStack
}
返回栈
}
导出默认CreateBoottomTabNavigator(
screenExcluder(){
tabbar组件:选项卡,
})
我希望有一个解决方案,可以使
createBottomTabNavigator
基于
mobx状态树中的更改值有条件地渲染路由


我使用的是react导航版本3.0.9。

此插件目前不允许动态路由

应用程序启动时,您必须定义所有路线。你可以找一个替代插件,比如

如需更多选项,请加入此

建议

或者,您可以更改规划路由安全性的方式,例如呈现所有路由并基于用户设置它们的安全性


更多信息:

此插件目前不允许动态路由

应用程序启动时,您必须定义所有路线。你可以找一个替代插件,比如

如需更多选项,请加入此

建议

或者,您可以更改规划路由安全性的方式,例如呈现所有路由并基于用户设置它们的安全性

更多信息: