Как сбросить мой стек в реагирующей навигации? - PullRequest
0 голосов
/ 22 января 2019

У меня есть 5 вкладок на главном экране.

  • Домашняя вкладка
  • Вкладка поиска
  • AddPostTab
  • Вкладка уведомлений
  • Вкладка профиля

AddPostTab похож на это.

const AddPostTab = createStackNavigator({
    AddPost: {
      screen: AddPost,
    },
    ImageDescription: {
      screen: ImageDescription
    },
    },
    {
      headerMode:'none',
      mode:'modal'
    }
);

Когда я возвращаюсь с экрана ImageDescription на Начальный экран, а затем, если я снова перехожу на AddPostTab, я прямо иду на экран ImageDescription.Но я хочу иметь возможность перейти на экран AddPost.

Я также пытался

 const resetAction = StackActions.reset({
                index: 0,
                actions: [
                    NavigationActions.navigate({ routeName: 'AddPost' }),
                ],
              });
              this.props.navigation.dispatch(resetAction);

, но это только выводит меня на экран AddPost.Но если я использую Home вместо AddPost, он не работает.Как я могу сбросить свой стек в моем случае, чтобы я мог перейти на главный экран?

1 Ответ

0 голосов
/ 22 января 2019

Это совершенно разные навигаторы. И reset нельзя применить к TabNavigator, потому что нет особого смысла это делать. Что вы можете сделать - это сделать что-то вроде этого:

ImageDescription.js:

goToHome() => 
   this.props.navigation.popToTop() 
&& this.props.navigation.navigate('Home');

Это сбросит в корень ваш текущий стек, а затем вы переключитесь на Home tab

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