react-native - 如何在 react native 中创建和使用多个 Tab Navigator?
问题描述
我正在尝试在反应原生的单个应用程序中创建不同的底部选项卡导航器。目前我可以正确创建和使用一个,但是当我通过身份验证表单连接到应用程序时,我想显示另一个。
是否可以 ?
这是我的代码示例,可以帮助您了解如果您不这样做,我想做什么:
export default function AppNavigation() {
return (
<NavigationContainer>
<Tab.Navigator>
<Tab.Screen name="SignUp" component={SignUpFunction} />
<Tab.Screen name="SignIn" component={SignInFunction} />
</Tab.Navigator>
</NavigationContainer>
);
}
我想创建另一个像:
export default function AppNavigation() {
return (
<NavigationContainer>
<Tab.Navigator>
<Tab.Screen name="SignUp" component={SignUpFunction} />
<Tab.Screen name="SignIn" component={SignInFunction} />
</Tab.Navigator>
<Tab.Navigator>
<Tab.Screen name="Profil" component={ProfilPageFunction} />
</Tab.Navigator>
</NavigationContainer>
);
}
我的问题是不可能有两个 Tab.Navigator
我没有在互联网上找到有关它的文档。如果你们有一个或能够解释我如何做到这一点,那就太棒了。
解决方案
通过提及“不同的选项卡导航器”,我假设您希望在不同的屏幕中拥有选项卡导航器。
有一些选项可以做到这一点。第一个基于您提供的选项卡名称,您正在尝试进行身份验证流程,方法是根据登录状态呈现选项卡。
export default function AppNavigation() {
return (
<NavigationContainer>
{!isloggedIn?(<Tab.Navigator>
<Tab.Screen name="SignUp" component={SignUpFunction} />
<Tab.Screen name="SignIn" component={SignInFunction} />
</Tab.Navigator>):
(<Tab.Navigator>
<Tab.Screen name="Profil" component={ProfilPageFunction} />
</Tab.Navigator>)}
</NavigationContainer>
);
}
这里 isloggedIn 将来自您的上下文或状态,或者您管理状态。
第二种选择是在带有标签导航器的堆栈导航器中拥有多个屏幕,这称为嵌套导航器
inside each screen
function Home() {
return (
<Tab.Navigator>
<Tab.Screen name="Feed" component={Feed} />
<Tab.Screen name="Messages" component={Messages} />
</Tab.Navigator>
);
}
//在导航容器内
<Stack.Screen name="Home" component={Home} />
两种方法都行
推荐阅读
- firebase - 使用自定义参数创建自定义事件
- c# - 从 JSON 数组中获取特定的 JSON 数据
- javascript - 如何在用户单击退出时添加 Flash 消息
- ionic-framework - android http请求在android设备或android模拟器上不起作用
- c# - 在 OOP 中链接概念?
- javascript - 使用three.js点击到达某个位置后如何停止相机动画
- c# - 登录成功时如何将用户名写入本地txt文件并检查文件以进行下次登录?
- flutter - 当列表很长时,颤动的卡片提升被破坏了
- html - SVG 变换属性
- angular - ag-grid & angular: autoSizeColumns() 截断单元格文本