Навигация по навигации 4, нижняя вкладка навигатора: как открывать начальный маршрут каждый раз, когда приложение повторно открывается из фона - PullRequest
0 голосов
/ 20 февраля 2020

Текущее поведение

У меня есть TabNavigator с 4 вкладками, каждая вкладка является stackNavigator, и на данный момент каждый stackNavigator имеет только один экран: домашний, карты, резервирования, профиль. Я использую React Navigation 4. В каждой вкладке я поместил навигационную вкладку TabBarOnPress для навигации между экранами, поэтому в этом случае имеет смысл backBehavior: 'history'.

const TabNavigator =   createBottomTabNavigator(
  {
    Home: {
      screen: HomeStack,
      navigationOptions: {
        tabBarOnPress: ({navigation}) => {
          navigation.navigate('Home')
        },
      }
    },
//other tabs
  },
  {
    initialRouteName: 'Home',
    backBehavior: 'history'
  }
)

Но если я перемещаюсь между экранами может быть, в порядке HOME -> PROFILE -> HOME -> MAPS, стек маршрутизаторов PROFILE, HOME, MAPS из-за поведения функции навигации. Аналогичным образом, когда мы находимся на устройстве android и нажимаем кнопку возврата pu sh, порядок посещаемых экранов имеет следующий вид: MAPS -> HOME -> PROFILE, и если мы снова нажимаем кнопку pu sh на кнопке возврата, выйдите из приложения, поместив его в фоновом режиме. Теперь, возвращаясь в приложение, открывается экран ПРОФИЛЬ, и это также первый маршрут в стеке навигации.

Ожидаемое поведение

Когда я снова открыл приложение из фона, я не хочу быть на экране ПРОФИЛЯ, но на экране HOME. Я хочу сбросить первый маршрут в стеке навигации, изменив его с помощью стека HOME. Это было бы таким же поведением в Instagram (попробуйте go home -> profile -> home, pu sh кнопку назад два раза; теперь pu sh кнопку назад в третий раз: приложение переходит в фон, теперь снова открывается Instagram: приложение перезагружается с домашней страницы)

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