1

例如这个用于身份验证的代码表单react-navigation 文档

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',
  }
));

为什么我们有两个不同的堆栈导航器?为什么我们不把所有的屏幕都封装到一个导航器中?在同一个导航器中包装不同屏幕的逻辑应该是什么?

4

1 回答 1

2

如果您只考虑导航,那么没有真正的理由在另一个中使用一个堆栈导航器。

然而,有一些视觉原因可能需要使用不同的导航器——不同的过渡、标题布局和其他样式选项,所有这些都可以在这里找到。

也就是说,使用多个导航器并不是绝对必要的,因为这些选项中的大多数都可以在逐个屏幕的基础上进行设置,但是在尝试最小化样板代码的数量时可能会有所帮助。

于 2018-12-01T13:00:54.013 回答