Скрытие TabBar происходит динамически с небольшой задержкой - PullRequest
0 голосов
/ 12 июня 2019

У меня возникли проблемы с динамическим сокрытием TabBar с использованием React Navigation. У меня все работает (имеется в виду, что я могу динамически скрывать TabBar на каком-то конкретном экране), но у него есть небольшая задержка, и он совсем не выглядит хорошо.

Ниже приведена конфигурация моего маршрута (и я пойду снизу вверх, чтобы мне было легче донести свою точку зрения): 1. Мой mainTabNavigator:

const mainTabNavigator = createBottomTabNavigator({
     MoviesStackWithModal: {
        screen: moviesWithModalStack,
        navigationOptions: {
            tabBarIcon: ({ tintColor }: any) => <Icon name="movie-roll" type={ 'material-community' } color={ tintColor }/>
        }
     },
     ...some other Stack...
});
  1. Далее мой moviesWithModalStack:

    const moviesWithModalStack = createStackNavigator({
         MoviesStack: moviesStack,
         MovieDetails: MovieDetailModalScreen
    }, {
         initialRouteName: 'MoviesStack',
         mode: 'modal',
         headerMode: 'none',
         cardStyle: {
            backgroundColor: colors.default
         },
         navigationOptions: ({ navigation }) => {
             const routeName = navigation.state.routes[navigation.state.index].routeName;
             return {
                tabBarVisible: routeName !== 'MovieDetails'
             };
         }
    });
    

3.Наконец, мой moviesStack:

const moviesStack = createStackNavigator({
     Movies: MoviesScreen,
     SearchMovies: SearchMoviesScreen
})

В конечном счете, я хочу достичь, когда я на Movies и SearchMovies экранах, должен быть виден TabBar, а когда я на MoviesDetail экране, TabBar должен быть скрытый. Поскольку я делаю MoviesDetail модальным, поэтому скрывать TabBar на этом модальном экране имеет смысл для меня.

В moviesWithModalStack я беру routeName из navigation.state, чтобы сообщить router, когда скрывать TabBar со свойством tabBarVisible. Однако есть небольшая задержка, когда TabBar переходит от visible -> hidden и наоборот.

Вот GIF, чтобы показать проблему:

<a target="_blank"><img src="https://d1sz9tkli0lfjq.cloudfront.net/items/2I3F2c1O3u2V2F2B3J1Y/Screen%20Recording%202019-06-12%20at%2010.13%20AM.gif" style="display: block;height: auto;width: 100%;"/></a>

Любые советы / решения будут с благодарностью. ТИА

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...