反应导航 5 禁用向后滑动动作

Kha*_*ara 17 ios react-native react-navigation

我正在使用反应导航 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>
  );
}
Run Code Online (Sandbox Code Playgroud)

主堆栈屏幕:

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>
  );
}
Run Code Online (Sandbox Code Playgroud)

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

Ari*_*ifi 44

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

<AuthStack.Screen
   name="Login"
   component={Login}
   options={{gestureEnabled: false}}
/>
Run Code Online (Sandbox Code Playgroud)

或者整个导航器像:

<AuthStack.Navigator screenOptions={{gestureEnabled: false}}>
  ...
</AuthStack.Navigator>
Run Code Online (Sandbox Code Playgroud)

  • 如果您想将其应用到每个屏幕,您也可以将其附加到整个导航器上 - `&lt;AuthStack.Navigator screenOptions={{gestureEnabled: false }}&gt;` (2认同)