У меня есть Навигатор ящиков поверх Навигатора стека, затем с любого вложенного экрана внутри стека, по нажатию кнопки «Назад» оборудования, root уровень Слушатели BackHandler экрана навигатора ящиков вызывают.
const Drawer = createDrawerNavigator();
const DrawerNavigator = props => {
return (
<Drawer.Navigator
drawerContent={props => <DrawerScreen {...props} />}
initialRouteName={'HomeScreen'}
drawerPosition={'right'}
drawerStyle={{width: '100%', backgroundColor: 'transparent'}}
screenOption={{backBehavior: 'order'}}>
<Drawer.Screen
name="App"
component={AppStackNavigator}
options={{gestureEnabled: false}}
/>
</Drawer.Navigator>
);
};
const RootStack = createSwitchNavigator(
{
Login: LoginStackNavigator,
Drawer: DrawerNavigator,
RouteNavigator: RouteNavigatorClass,
OnBoardStack: OnboardStackNavigator,
OTP: {
screen: OTPScreen,
},
},
{
initialRouteName: 'RouteNavigator',
},
);
Если я нажимаю аппаратную кнопку «Назад» на каком-либо экране, вызывается обработчик «Назад» на главном экране… это начиналось, когда я обновлял реагирующую навигацию 2.x до 5. х