reactjs - Reac Native + React Navigation - 我希望屏幕在 TabNavigator 上不可见
问题描述
我为我的应用程序创建了一个 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 上显示它们?
解决方案
您可以使用嵌套导航器:
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 },
}
)
推荐阅读
- javascript - Stampit - TypeError:不是函数
- java - java hashmap似乎允许2个重复键
- python - 使用多个 GPU 时如何保存模型?
- javascript - 按数据属性查找元素
- python - 字典值排序错误
- javascript - 平台浏览器已经设置好了。用 [object Object] 覆盖平台。在电子应用程序中使用 tfjs-node 时
- python - Django - 在 API 视图上设置 CSRF 令牌
- ruby-on-rails - Rails 中的嵌套属性,它们的键是列字段
- html - 在移动设备上嵌入超出页面宽度 - 在 Squarespace
- reactjs - React Native SVG - 设置 SVG 宽度和高度会导致图标被切断