Разные стеки предназначены для самостоятельной работы, поэтому, если вам нужно сохранить историю навигации между этими экранами, вы должны установить их в одном стеке. Стеки могут быть настроены в вашем потоке точно так же, как экраны, например, настраивая навигатор стека в навигаторе ящика:
/**
* User drawer stack
*/
const DrawerStack = DrawerNavigator({
Home: {screen: HomeStack}, //HomeStack is a StackNavigator
}, {
contentComponent: DrawerContainer,
initialRouteName: 'Home',
});
С этим переосмыслите, какой вы хотите свою историю. Если я правильно понял ваш сценарий использования, вы хотите, чтобы A / B делился историей с C / D, я бы сказал, что ваш стек должен выглядеть следующим образом:
Root Nav - (SwitchNavigator)
Stack B - (StackNavigator)
Stack A - (BottomTabNavigator)
Page A
Page B
Page C
Page D
Если по какой-то причине вы не можете этого сделать, то вам нужно будет фиксировать обратные нажатия и пролистывания вручную, чтобы сделать это самостоятельно.