【发布时间】:2020-05-27 20:41:12
【问题描述】:
我想在按下 BottomTabNavigator 上的特定选项卡时导航到屏幕。
通常,当按下选项卡时,它会自动导航到配置的屏幕。但我不想有这种行为。我想隐藏该屏幕上的底部标签,并在顶部栏中也提供 back 功能。我通常在 ReactNavigationStack 屏幕中使用navigation.navigate('routeName')。但我不知道在 BottomTabNavigator 配置中如何/在何处编写此代码。
例如,我在底部栏中有以下 5 个选项卡。当按下 Add 按钮时,我想导航到 AddNewScreen。我不知道在哪里放置 onPress 事件。我试着把它放在options 和BottomTab.Screen 下。但仍然没有运气。
我试图拦截 onPress 事件以使用navigation.navigate。但它甚至没有被点击,它总是用标签栏打开 AddNewScreen。
<BottomTab.Navigator initialRouteName={INITIAL_ROUTE_NAME}>
<BottomTab.Screen
name="Home"
component={HomeScreen}
initialParams="Home Params"
options={{
title: 'Home',
tabBarIcon: ({ focused }) => <TabBarIcon focused={focused} name="md-home" iconType="ion" />,
}}
/>
<BottomTab.Screen
name="AddNew"
component={AddNewScreen}
options={{
title: 'Add',
tabBarIcon: ({ focused }) => <TabBarIcon focused={focused} name="md-add-circle" iconType="ion"
onPress={(e) => {
e.preventDefault();
console.log(e)
}} />,
}}
/>
</BottomTab.Navigator>
添加新屏幕始终使用底部标签栏打开。
问题:
-
当标签是时,有没有任何用于导航到特定屏幕
按下?
- 是否有隐藏底部标签栏的添加新 屏幕?
【问题讨论】:
标签: react-native react-navigation react-navigation-bottom-tab