按下BottomTabNavigator上的Tab键时导航到屏幕

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

当我按下BottomTabNavigator上的特定选项卡时,我想导航到屏幕。

通常,当按下选项卡时,它将自动导航到配置的屏幕。但我不想有这种行为。我想隐藏该屏幕的底部选项卡,并在顶部栏中也提供back功能。我通常在ReactNavigationStack屏幕中使用navigation.navigate('routeName')。但是我不知道如何/在哪里在BottomTabNavigator配置中编写此代码。

例如,我在底部栏中有以下5个标签。我想在按下添加按钮时导航到AddNewScreen。我不知道该onPress事件放在哪里。我试图将其放在optionsBottomTab.Screen下。但仍然没有运气。

enter image description here

我试图拦截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>

添加新屏幕始终使用底部的标签栏打开。

enter image description here

问题

  1. 当标签页位于按下?
  2. 反正有没有隐藏该“添加新内容”底部的标签栏屏幕?
react-native react-navigation react-navigation-bottom-tab
2个回答
0
投票

我没有尝试过,但我认为...您可以将bottomNavigator放在Stack Navigator中,然后单击加号图标。您可以导航到AddNewItem屏幕。如果它不起作用,那么您可以尝试以下替代方法:-当您单击加号图标时。在您的bottomNavigator仍在的情况下,它将导航到屏幕。然后,您可以在bottomNavigator屏幕上自动(强制)调用堆栈导航到AddNewItem屏幕的功能。


0
投票

您可以使用标签栏按钮在底部的工具栏中具有自定义功能。代码如下所示

 <Tab.Screen name="Settings2" component={SettingsScreen} options={{
  tabBarButton: (props) => (<TouchableOpacity  {...props} onPress={()=>alert(123)}/>),
}}/>

这将显示一个普通的底部标签栏按钮,但onclick会显示警报,您可以将代码替换为导航或所需的任何其他代码。同样,“ SettingsScreen”组件可以是返回null的虚拟组件。

希望这会有所帮助。

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