在屏幕内反应导航createMaterialTopTabNavigator

问题描述 投票:0回答:2

React 导航 createMaterialTopTabNavigator 在其文档页面顶部显示了一个非常酷的设置:

请注意,顶部导航器堆栈似乎位于屏幕内。顶部有一个标题“Material Top Tabs”,我们可以回到“Examples”

有趣的是,任何示例中都没有给出此设置。

我希望有相同的设置,并且能够从另一个屏幕导航到特定选项卡。

有人可以分享一个示例代码吗?

我目前拥有的是一个基本的底部选项卡导航,带有

<BottomTab.Screen
  name="Tabs"
  component={TabsNavigator}
/> 

然后

function TabsNavigator() {
  const MyTabs = createMaterialTopTabNavigator();
  return (
    <MyTabs.Navigator
      <MyTabs.Screen name="Upcoming" component={TabsUpcomingScreen} />
      <MyTabs.Screen name="Past" component={TabsPastScreen} />
    </MyTabs.Navigator>
  );
}

虽然这在执行

navigation.navigate('Tabs', { screen: 'Upcoming' });
时有效,但我缺少包含选项卡的屏幕...或“选项卡”屏幕(如示例中所示,它是“材料顶部选项卡”屏幕)

我可以做这样的事情:

function TabsNavigator() {
  const TabsStack = createStackNavigator();
  return (
    <TabsStack.Navigator>
      <TabsStack.Screen name="Tabs" component={TabsScreen} options={{ headerTitle: 'Tabs' }} />
    </TabsStack.Navigator>
  );
}

function TabsScreen() {
  const MyTabs = createMaterialTopTabNavigator();
  return (
    <MyTabs.Navigator
      <MyTabs.Screen name="Upcoming" component={TabsUpcomingScreen} />
      <MyTabs.Screen name="Past" component={TabsPastScreen} />
    </MyTabs.Navigator>
  );
}

但是我无法使用

navigation.navigate('Tabs', { screen: 'Upcoming' });

导航到特定选项卡
react-navigation
2个回答
0
投票

如果您想导航到 createMaterialTopTabNavigator 内的某个选项卡。请使用 navigation.jumpTo('Tabs', { name: 'Upcoming' }); 而不是 navigation.navigate('Tabs', { screen: 'Upcoming' }); https://reactnavigation.org/docs/material-top-tab-navigator#jumpto


0
投票

与本为我工作的上述内容相同。

© www.soinside.com 2019 - 2024. All rights reserved.