Реагировать на исходные элементы ящика сброса - реагировать на навигацию вложенного стека - PullRequest
0 голосов
/ 11 февраля 2020

Моя структура маршрута выглядит следующим образом:

- StackNavigator
  -- SplaceScreen
  -- LoginScreen
  -- HomeScreen (Drawer Navigator)
    --- Listing Screen (Stack Navigator)(Default Screen that loads)
    --- Booking Screen (Stack Navigator)
    --- Profile Screen (Stack Navigator)

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

Теперь, когда я перехожу к экрану бронирования На экране списка, я хочу заменить экран списка на Экран бронирования (например, когда я снова нажимаю Android Я не хочу видеть экран списка)

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

Экран бронирования добавляется над экраном списка (например, * не заменяет)

Пробное решение

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

Получено сообщение об ошибке

Не определен маршрут для Ключ Бронирование экрана. Должно быть одно из 'SplashScreen, LoginScreen, HomeScreen'

Так как сбросить внутренний стек

1 Ответ

0 голосов
/ 11 февраля 2020

Вы можете использовать replace, чтобы заменить текущий маршрут в стеке:

 StackActions.replace('BookingScreen')

Вы не сможете вернуться к замененному маршруту.

...