反应导航 v6 和 v5,禁用向后滑动操作

新手上路,请多包涵

我正在使用反应导航 5:

我创建了 MainStackScreen 和 AuthStackScreen,

 const AuthStack = createStackNavigator();

function AuthStackScreen() {
  return (
    <AuthStack.Navigator headerMode="none">
      <AuthStack.Screen name="Main" component={Main} />
      <AuthStack.Screen name="Login" component={Login} />
      <AuthStack.Screen name="Registration" component={Registration} />
      <AuthStack.Screen name="Home" component={DrawerNavigator} />
      <AuthStack.Screen name="Notifications" component={Notifications} />
      <AuthStack.Screen name="SmsValidation" component={SmsValidation} />
      <AuthStack.Screen name="MoreRegistrationInfo" component={MoreRegistrationInfo} />
    </AuthStack.Navigator>
  );
}

主堆栈屏幕:

 const MainScreen = createStackNavigator();

function MainStackScreen({navigation}) {
  return (
    <MainScreen.Navigator>
      <MainScreen.Screen name="Main" component={Main} />
      <MainScreen.Screen name="SmsValidation" component={SmsValidation} />
      <MainScreen.Screen name="MoreRegistrationInfo" component={MoreRegistrationInfo} />
    </MainScreen.Navigator>
  );
}

我想防止 IOS 在登录我的屏幕之间滑动操作

原文由 Khaled Boussoffara 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 521
2 个回答

您可以在如下屏幕中将gestureEnabled 设置为false:

 <AuthStack.Screen
   name="Login"
   component={Login}
   options={{gestureEnabled: false}}
/>

或整个导航器,例如:

 <AuthStack.Navigator screenOptions={{gestureEnabled: false}}>
  ...
</AuthStack.Navigator>

原文由 Arif Arifi 发布,翻译遵循 CC BY-SA 4.0 许可协议

您可以设置一个 beforeRemove 监听器以防止返回。 React 导航文档

原文由 Steven Bell 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题