【问题标题】:Reac Native + React Navigation - I want screen not to be visible on TabNavigatorReact Native + React Navigation - 我希望屏幕在 Tab Navigator 上不可见
【发布时间】:2018-05-29 15:14:06
【问题描述】:

我为我的应用创建了一个 TabNavigator,但我只想要 5 个屏幕。我想导航到但不通过选项卡的其余部分(在那些我不希望选项卡也可见的部分中)。这是我现在的路由器:

export default TabNavigator(
  {
    Dashboard: {
      screen: DashboardContainer,
    },
    NotificationContainer: {
      screen: NotificationContainer,
    },
    Movements: {
      screen: MovementsContainer,
    },
    TopOwners: {
      screen: TopOwnersContainer,
    },
    Menu: {
      screen: MenuContainer,
    },
  },
)

我在主 index.js 中导入:

const App = () => (
  <Root>
    <Provider store={store}>
      <TabNavigator />
    </Provider>
  </Root>
);

我该怎么做才能在我的导航器 screen6、screen7、screen8 中拥有并导航到它们但不在 TabNavigator 上显示它们?

【问题讨论】:

    标签: reactjs react-native react-navigation tabnavigator react-native-tabnavigator


    【解决方案1】:

    您可以使用嵌套导航器:

    const Screen1Router StackNavigator( // you can use a SwitchNavigator instead
      {
          Screen1: { screen: Screen1 },
          Screen6: { screen: Screen6 },
          Screen7: { screen: Screen7 },
      }
    )
    
    export default TabNavigator(
      {
        Screen1: {
          screen: Screen1Router,
        },
        Screen2: {
          screen: Screen2,
        },
        Screen3: {
          screen: Screen3,
        },
        Screen4: {
          screen: Screen4,
        },
        Screen5: {
          screen: Screen5,
        },
      }
    );
    

    在此示例中,将显示 5 个选项卡,您将能够从第一个选项卡导航到 Screen6 和 Screen7。

    编辑:

    如果您不想看到 Screen6 和 Screen7 中的选项卡,则必须将 tabNavigator 嵌套在 StackNavigator 中:

    const tabNav = TabNavigator(
      {
        Screen1: {
          screen: Screen1,
        },
        Screen2: {
          screen: Screen2,
        },
        Screen3: {
          screen: Screen3,
        },
        Screen4: {
          screen: Screen4,
        },
        Screen5: {
          screen: Screen5,
        },
      }
    );
    
    export default StackNavigator( // you can use a SwitchNavigator instead
      {
          Screen1: { screen: tabNav },
          Screen6: { screen: Screen6 },
          Screen7: { screen: Screen7 },
      }
    )
    

    【讨论】:

    • 成功了,谢谢!还有一个问题 - 在那些不在 TabNavigator 上的屏幕上,我看到底部的选项卡,如何使 TabFooter 仅在这 5 个选项卡屏幕上可见?
    猜你喜欢
    • 1970-01-01
    • 2023-04-09
    • 1970-01-01
    • 1970-01-01
    • 2022-11-10
    • 2018-01-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多