Скрыть определенные c Tab.Screen в Tab.Navigator React Native - PullRequest
0 голосов
/ 06 мая 2020

Есть ли способ скрыть экран с надписью «### HIDE ME ###», или есть способ определить экран, который не будет отображаться в навигации по вкладкам?

Вот код:

    <Tab.Navigator
      screenOptions={({ route }) => ({
        tabBarIcon: ({ focused, color, size }) => {
          let iconName;

          if (route.name === 'Home') {
            iconName = focused
              ? 'ios-home'
              : 'ios-home';
          } else if (route.name === 'Messages') {
            iconName = focused ? 'ios-paper-plane' : 'ios-paper-plane';
          } else if (route.name === 'Todo') {
            iconName = focused ? 'ios-list-box' : 'ios-list';
          } else if (route.name === 'More') {
            iconName = focused ? 'ios-more' : 'ios-more';
          } else if (route.name === 'Videos') {
            iconName = focused ? 'ios-videocam' : 'ios-videocam';
          }
          // You can return any component that you like here!
          return <Ionicons name={iconName} size={size} color={color} />;
        },
      })}
      tabBarOptions={{
        activeTintColor: '#ffcc07',
        inactiveTintColor: 'gray',
      }}>
      <Tab.Screen name="Home" component={DashboardScreen} />
      <Tab.Screen name="Messages" component={MessagesScreen} />
      <Tab.Screen name="Todo" component={TodoScreen} />
      <Tab.Screen name="Videos" component={WisdomReplayScreen} />
      <Tab.Screen name="More" component={MoreOptionsScreen} />
      <Tab.Screen name="Test" component={Test}  ### HIDE ME ###/>
    </Tab.Navigator> 

1 Ответ

0 голосов
/ 06 мая 2020

вы можете определить экраны, на которых панель вкладок должна быть скрыта, как это

      function getTabBarVisible(route) {
      const routeName = route.state
        ?  route.state.routes[route.state.index].name
        : route.params?.screen || 'Home';

      if (routeName === 'Home') {
        return false;
      }
      return true;
    }

**and attach it to the tab navigator's screen:**

 <Tab.Screen name="Home" 
        component={HomeStackScreen}
          options={({ route }) => ({
    tabBarVisible: getTabBarVisible(route) })} />
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...