例如,此代码形式import { createSwitchNavigator, createStackNavigator, createAppContainer } from 'react-navigation';
// Implementation of HomeScreen, OtherScreen, SignInScreen, AuthLoadingScreen
// goes here.
const AppStack = createStackNavigator({ Home: HomeScreen, Other: OtherScreen });
const AuthStack = createStackNavigator({ SignIn: SignInScreen });
export default createAppContainer(createSwitchNavigator(
{
AuthLoading: AuthLoadingScreen,
App: AppStack,
Auth: AuthStack,
},
{
initialRouteName: 'AuthLoading',
}
));
documentation用于身份验证:
{{1}}
为什么我们有两个不同的堆栈导航器?为什么我们不将所有屏幕都包装到一个导航器中?在同一导航器中包装不同屏幕的逻辑应该是什么?
答案 0 :(得分:1)
如果您仅考虑导航,则没有真正的理由将一个堆栈导航器安装在另一个中。
但是,出于视觉原因,可能需要使用不同的导航器-不同的过渡,标题布局和其他样式选项,所有这些都可以在here中找到。
也就是说,并不是必须要使用多个导航器,因为大多数这些选项都可以逐个屏幕地进行设置,但是当尝试最小化样板代码量时可能会有所帮助。