У меня общая проблема с настройкой React Navigation.
У меня есть несколько StackNavigator, вложенных в DrawerNavigator, который находится внутри SwitchNavigator. Да, это беспорядок.
Допустим, у меня есть DrawerNavigator с 3 стеками: HomeStack (домашний маршрут, маршрут профиля, маршрут истории), SearchStack (маршрут списка, подробный маршрут) и CartStack (маршрут просмотра, маршрут PaymentMethod , Маршрут подтверждения).
Если пользователь перемещается по домашнему стеку (Home -> profile -> history), а затем переходит к SearchStack, что, естественно, приводит к CartStack, если я пытаюсь перевести пользователя в HomeStack, Навигатор выводит его на верхний экран стека (в данном примере это история).
Это проблема, когда пользователь пытается перемещаться с помощью ящика, потому что навигатор всегда поднимает его наверх экран в стеке. Это может быть естественным поведением, но есть ли способ переопределить его или сбросить стек каждый раз, когда пользователь нажимает элемент ящика? Каков наилучший подход?
Я пытался использовать StackActions, чтобы перевести пользователя из маршрута Подтверждение в Дом, но я получаю сообщение об ошибке («Не определен маршрут для ...»).
-
Главное меню навигации (здесь нет проблем при переключении между экранами):
const AppContainer = createAppContainer(
createSwitchNavigator(
{
AuthLoading: LoadingScreen,
AuthStack: AuthNavigation,
CoachApp: CoachNavigation,
StudentApp: StudentNavigation
},
{
initialRouteName: 'AuthLoading'
}
)
);
CoachNavigation выглядит примерно так:
export default CoachNavigation = createDrawerNavigator(
{
DrawerHome: { screen: HomeStack },
DrawerSearch: { screen: SearchStack },
DrawerCart: { screen: CartStack },
}
)
Любой совет будет полезен , Заранее спасибо, извините, если мое объяснение не очень хорошее.