【发布时间】:2019-05-03 08:47:29
【问题描述】:
例如此代码形式react-navigation documentation 用于身份验证:
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',
}
));
为什么我们有两个不同的堆栈导航器?为什么我们不把所有的屏幕都封装到一个导航器中?在同一个导航器中包装不同屏幕的逻辑应该是什么?
【问题讨论】:
-
如果您有不同的堆栈导航器,您可以根据用户是否登录来选择路由。我相信这个例子就是这种情况。如果用户没有登录,应用会选择AuthStack,然后用户登录后会进入AppStack
标签: reactjs react-native mobile react-navigation react-navigation-stack