React native 您能否基于用户类型定义导航器,并在根导航器中有条件地声明它们?

React native 您能否基于用户类型定义导航器,并在根导航器中有条件地声明它们?,react-native,react-navigation,React Native,React Navigation,我想根据登录后已知的用户类型声明一个不同的导航器 以下只是一个例子: const authNavigator = createStackNavigator({ Login: LoginScreen, Register: RegisterScreen, }; const studentNavigator = createStackNavigator({ Home: StudentHomeScreen, Professors: ProfessorListScreen

我想根据登录后已知的用户类型声明一个不同的导航器

以下只是一个例子:

const authNavigator = createStackNavigator({
    Login: LoginScreen,
    Register: RegisterScreen,
};

const studentNavigator = createStackNavigator({
    Home: StudentHomeScreen,
    Professors: ProfessorListScreen
});

const professorNavigator = createStackNavigator({
    Home: ProfessorHomeScreen,
    Students: StudentListScreen
});

const rootNavigator = createSwitchNavigator({
    Auth: authNavigator,
    App: isStudent ? studentNavigator : professorNavigator,
});
isStudent
将在登录后设置为redux状态。 我已经尝试了一些事情,比如将学生/教授导航器包装到一个react组件中,该组件接受redux状态,然后有条件地呈现它。但是,由于react导航的最新更新,我们无法呈现多个导航器。 接下来,我尝试声明以下内容:

const rootNavigator = createSwitchNavigator({
    Auth: authNavigator,
    StudentHome: studentNavigator,
    ProfessorHome: professorNavigator
});
然后,我会根据用户类型路由到StudentHome/ProfessorHome。但这不起作用,因为导航器加载了所有屏幕,因此如果学生登录,教授屏幕也会加载,这会导致问题,因为redux状态不同,会导致未定义的错误。我还注意到lazyLoad已经从新版本中删除

我只是在寻找实现这个用例的最佳方法