Скрытие нижних вкладок на определенных экранах

Я использую навигатор нижних вкладок, импортированный из «реагировать-навигация-вкладки».

import { createBottomTabNavigator } from 'react-navigation-tabs';

const AppNavigator = createBottomTabNavigator({
  Homepage: {
    screen: Screen1
  },
  Screen2: {
    screen: Screen2
  }
} , {
  initialRouteName:"Screen1"
});

Экран 1 — навигатор стека

const AppNavigator = createStackNavigator({
    Homepage: {
      screen: Screen1,
    },
    Screen2: {
        screen: Screen2
    }
} , {
    initialRouteName : "Homepage",
    headerMode:"none",
    navigationOptions: ({ navigation }) => ({
        tabBarVisible: navigation.state.routes[navigation.state.index].routeName === 'Screen2' ? false : true
    })
});

После некоторых исследований я нашел решение ниже, но не работает

navigationOptions: ({ navigation }) => ({
        tabBarVisible: navigation.state.routes[navigation.state.index].routeName === 'Screen2' ? false : true
    })

Плохая новость, потому что даже чтобы скрыть это со всех экранов, приведенный ниже код также не сработал.

navigationOptions: ({ navigation }) => ({
        tabBarVisible: false
    })

вкладки всегда видны после долгих исследований и перебора десятков решений


person Ahmed Mohsen    schedule 28.11.2019    source источник
comment
Возможный дубликат React Navigation, как скрыть панель вкладок внутри стека навигация   -  person Gaurav Roy    schedule 28.11.2019


Ответы (1)


Попробуй это:

Screen1.navigationOptions = ({ navigation }) => {

    let tabBarVisible = true;

    let routeName = navigation.state.routes[navigation.state.index].routeName

    if ( routeName == 'ScreenX' ) {
        tabBarVisible = false
    }

    return {
        tabBarVisible,
    }
}
person Awab Ijaz    schedule 28.11.2019
comment
ляз, он спрятан, но Screen1 это навигатор стека, содержащий много экранов (ScreenX и ScreenZ) например, я хочу скрыть его от ScreenX в этом навигаторе стека, ты меня понял? - person Ahmed Mohsen; 28.11.2019
comment
Я отредактировал свой ответ, попробуйте это после создания навигатора стека. - person Awab Ijaz; 28.11.2019
comment
ljaz , но навигатор нижних вкладок является родителем, а навигатор стека является его дочерним элементом - person Ahmed Mohsen; 28.11.2019
comment
То же, он все еще существует - person Ahmed Mohsen; 28.11.2019