Текущее поведение
У меня есть 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: приложение перезагружается с домашней страницы)