React Navigation v5 не сбрасывает и не удаляет предыдущие маршруты

У меня есть экран входа в систему, который 9X_react-native я поместил в стек. После успешного входа 9X_react-native-web пользователя в систему он перенаправляется 9X_react-native-android на главный экран, который является экраном 9X_react-native-android ящика. Одним из вариантов экрана ящика является 9X_react-native-ios выход из системы, поэтому при щелчке по 9X_reactjs-native нему пользователь должен выйти из системы. Ниже 9X_react-navigation-v5 приведен мой код для экрана выхода из системы. Я 9X_react-native-ios просто показываю индикатор выполнения экрана 9X_react-native-ios выхода из пользовательского интерфейса, но 9X_react-native-ios в хуке useEffect я вызываю следующий метод

navigation.navigate({index: 0, routes: [{name: LOGIN_SCREEN}]}); 

, но я 9X_react-navigation-v5 получаю сообщение об ошибке You need to specify name or key when calling navigate with an object as the argument, и меня перенаправляют 9X_reactjs-native на главный экран. когда я полностью перезапускаю 9X_react-native свое приложение, оно перемещается только 9X_react-navigation-v5 на экран входа в систему. Я передаю правильное 9X_react-navigation-v5 значение для ключа имени.

Мой стек навигации 9X_reactjs-native выглядит примерно так

 ... 

Мой компонент ящика, как 9X_react-native показано ниже

 

8
0
2
Общее количество ответов: 2

Ответ #1

Ответ на вопрос: React Navigation v5 не сбрасывает и не удаляет предыдущие маршруты

В react-navigation v5. Вы можете сбросить 9X_reactjs-native навигацию следующим образом

import { CommonActions } from "@react-navigation/native"; this.props.navigation.dispatch( CommonActions.reset({ index: 0, routes: [{ name: "LOGIN_SCREEN" }], }) ); 

16
0

Ответ #2

Ответ на вопрос: React Navigation v5 не сбрасывает и не удаляет предыдущие маршруты

Если вы хотите выполнить сброс, вам нужно 9X_react-native-web использовать reset, а не navigate:

navigation.reset({ routes: [{ name: LOGIN_SCREEN }] }); 

15
0