如何在 React Native 中创建和使用多个 Tab Navigator?
How to create and use many Tab Navigator in react native?
我正在尝试在 React Native 的单个应用程序中创建不同的底部选项卡导航器。
目前我可以正确创建和使用一个,但我想在通过身份验证表单连接到应用程序后显示另一个。
可能吗?
这是我的代码示例,可以帮助您理解如果您不这样做我想做什么:
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
我在 Internet 上找不到讨论它的文档。如果你们有一个或者能够向我解释如何去做那就太棒了。
通过提及 'Different tab navigators',我假设您希望在不同的屏幕上使用选项卡导航器。
有一些选项可以做到这一点。
第一个基于您提供的选项卡名称,您正在尝试使用 authentication flow,方法是根据登录状态呈现选项卡。
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 将来自您的上下文或状态,或者您管理状态的方式。
第二个选项是在带有选项卡导航器的堆栈导航器中有多个屏幕,这称为 nesting navigators
inside each screen
function Home() {
return (
<Tab.Navigator>
<Tab.Screen name="Feed" component={Feed} />
<Tab.Screen name="Messages" component={Messages} />
</Tab.Navigator>
);
}
//在NavigationContainer里面
<Stack.Screen name="Home" component={Home} />
两种方法都有效
我正在尝试在 React Native 的单个应用程序中创建不同的底部选项卡导航器。 目前我可以正确创建和使用一个,但我想在通过身份验证表单连接到应用程序后显示另一个。
可能吗?
这是我的代码示例,可以帮助您理解如果您不这样做我想做什么:
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
我在 Internet 上找不到讨论它的文档。如果你们有一个或者能够向我解释如何去做那就太棒了。
通过提及 'Different tab navigators',我假设您希望在不同的屏幕上使用选项卡导航器。
有一些选项可以做到这一点。 第一个基于您提供的选项卡名称,您正在尝试使用 authentication flow,方法是根据登录状态呈现选项卡。
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 将来自您的上下文或状态,或者您管理状态的方式。
第二个选项是在带有选项卡导航器的堆栈导航器中有多个屏幕,这称为 nesting navigators
inside each screen
function Home() {
return (
<Tab.Navigator>
<Tab.Screen name="Feed" component={Feed} />
<Tab.Screen name="Messages" component={Messages} />
</Tab.Navigator>
);
}
//在NavigationContainer里面
<Stack.Screen name="Home" component={Home} />
两种方法都有效