[英]setting gesture/swipe to false is not working [react-navigation v5 ]
在我的 react-native 应用程序中,我希望在某些屏幕上禁用抽屉。 所有的屏幕都是 Stack 并传递给drawerNavigation
。 为这两个屏幕指定navigationOptions
,使用gestureEnabled
或swipeEnabled
为false
,仍然通过滑动抽屉打开
const StackScreens = ({navigation}) => (
<Stack.Navigator
initialRouteName="SplashScreenCtrl"
headerMode="screen"
screenOptions={{}}
mode="card">
<Stack.Screen name="Splash" component={SplashScreenCtrl} options={{gestureEnabled: false}}/> // or swipeEnabled:false
<Stack.Screen name="Login" component={LoginScreen} options={{gestureEnabled: false}}/>
{/* and 10 more screens*/}
</Stack.Navigator>
);
// and in the render method
return (
<StatusBar backgroundColor="black" barStyle="light-content" />
<NavigationContainer>
<Drawer.Navigator drawerContent={(props) => <CustomDrawer {...props} />} >
<Drawer.Screen name="DrawerScreen" component={StackScreens} />
</Drawer.Navigator>
</NavigationContainer>
);
在屏幕上定义导航选项也不起作用
// in LoginScreen.js
static navigationOptions = ({navigation}) => ({
headerShown: false,
swipeEnabled: false,
});
// Then at creating stack navigator
<Stack.Screen name="Login" component={LoginScreen} options={LoginScreen.navigationOptions}/>
为时已晚,但可能对某些人有所帮助
您应该在 Drawer 声明中放置gestureEnabled: false
<Drawer.Navigator drawerContent={(props) => <CustomDrawer {...props} />} >
<Drawer.Screen name="DrawerScreen" component={StackScreens}
options={{ gestureEnabled: false }}/>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.