IOS滑动后退手势不执行navigation.goBack()



我有一个带有许多子导航器的抽屉导航器。在Android上,标题返回箭头和导航栏返回按钮都可以返回到上一个屏幕。例如,如果我通过抽屉导航到bScreen1,两个按钮都会让我回到应用程序的主屏幕,即aScreen1

在IOS上,Header back箭头工作得很好,然而,滑动回来让我回到我的登录屏幕内AuthNavigator而不是aScreen1,这对我来说有0个意义,因为它是在drawnavigator之外,并在RootNavigator内的同一级别。向后滑动不执行导航。goback()。

我已经尝试通过在'beforeRemove'事件上添加侦听器然后调用navigation.goBack()来覆盖滑动行为,但错误的屏幕仍然显示在移动到右一个(前一个)之前的瞬间

...
import { createDrawerNavigator } from '@react-navigation/drawer'
import { createStackNavigator } from '@react-navigation/stack';
const DrawerNavigator = createDrawerNavigator();
const rootStack = createStackNavigator();
...
drawerNavigator() {
return (
<DrawerNavigator.Navigator>
<DrawerNavigator.Screen component={aNavigator} />
<DrawerNavigator.Screen component={bNavigator} />
...
<DrawerNavigator.Screen component={zNavigator} />
</DrawerNavigator.Navigator>
)}
aNavigator() {
return (
<ANavigator.Navigator>
<ANavigator.Screen component={aScreen1} />
...
<ANavigator.Screen component={aScreen10} />
</ANavigator.Navigator>
)}
bNavigator() {
return (
<ANavigator.Navigator>
<ANavigator.Screen component={bScreen1} />
...
<ANavigator.Screen component={bScreen10} />
</ANavigator.Navigator>
)}

<rootStack.Navigator initialRouteName="AuthNavigator" screenOptions={{ headerShown: false }}>
<rootStack.Screen name="AuthNavigator" component={createAuthNavigator} />
<rootStack.Screen name="DrawerNavigator" component={drawerNavigator} />
</rootStack.Navigator>

Ps:我正在使用所有最新版本的导航包

当我设置animationEnabled: false时,我有同样的问题,如果你将它设置为true,你应该能够滑动切换屏幕。

最新更新