【问题标题】:why we have multiple stackNavigators?为什么我们有多个 stackNavigator?
【发布时间】: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


【解决方案1】:

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

但是,由于视觉原因,可能需要使用不同的导航器 - 不同的过渡、标题布局和其他样式选项,所有这些都可以在 here 找到。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-10-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多