реагировать родной вкладки не скрывать для конкретного экрана - PullRequest
0 голосов
/ 08 сентября 2018

Я использую реагирующую навигацию.
Я использую createStackNavigator внутри createBottomTabNavigator.

Я хочу скрыть панель вкладок для SignInScreen , то естьвнутри AccountTab но он не работает.

export default createBottomTabNavigator({
    HomeTab: { screen: createStackNavigator ({
      HomeTabScreen     : { screen:HomeTabScreen },
      ProductScreen     : { screen:ProductScreen },
    }),
      initialRouteName: 'HomeTabScreen',
    },

    AccountTab: { screen: createStackNavigator ({
      AccountTabScreen  : { screen:AccountTabScreen },
      RegisterScreen    : { screen:RegisterScreen },
      SignInScreen      : { screen:SignInScreen },
    }),
      initialRouteName: 'AccountTabScreen',
    },

  },
    {
        initialRouteName: 'HomeTab',        
        navigationOptions: ({ navigation }) => ({
            tabBarLabel: ({ focused, tintColor }) => {
                const { routeName } = navigation.state;
                let name;
                if (routeName === 'HomeTab') {
                  name = "Home";
                } else {
                  name = "Account";
                }
                return <Text style={[styles.titleStyle, focused ? styles.titleSelectedStyle : {}]}>{name}</Text>;
            },
        }),
});

Я пробую три метода, но он не работает.
методы следуют

1) Я был применен tabBarVisible: false в приведенном выше коде, поэтому он скрывает панель вкладок для всего экрана.

2) Я применил функцию для tabBarVisible подобно Функция tabBarLabel в приведенном выше коде.

3) Я был применен tabBarVisible: false в Навигация внутри SignInScreen .

Как скрыть панель вкладок для SignInScreen ?

Ответы [ 2 ]

0 голосов
/ 08 сентября 2018

Существует ветка git, которая может вам помочь: https://github.com/react-navigation/react-navigation-tabs/issues/19#issuecomment-410857516

Как правило, вы должны попытаться изменить параметры навигации по AccountTab следующим образом:

AccountTab: { 
  screen: createStackNavigator ({
        AccountTabScreen  : { screen:AccountTabScreen },
        RegisterScreen    : { screen:RegisterScreen },
        SignInScreen      : { screen:SignInScreen },
  }),
  initialRouteName: 'AccountTabScreen',
  navigationOptions: ({navigation}) => {
    let { routeName } = navigation.state.routes[navigation.state.index];
    let navigationOptions = {};

    if (routeName === 'SignInScreen') {
        navigationOptions.tabBarVisible = false;
    }

    return navigationOptions;
  }
},
0 голосов
/ 08 сентября 2018
const NestedNavigator = StackNavigator({
    ScreenOne: {
        screen: ScreenOneComponent
    },
    ScreenTwo: {
        screen: ScreenTwoComponent
    }
});

class NestedNavigatorWrapper extends React.Component {
    constructor(props)  {
        super(props);
    }
    render() {
        return (
            <DashboardNavigator screenProps={{ rootNavigation: this.props.navigation }} />
        );
    }
}
const AppNavigator = StackNavigator({
    Home: {
        screen: HomeComponent
    },
    Nested: {
        screen: NestedNavigatorWrapper
    }
});
...