This is my drawerNavigation :
const DashboardStack = StackNavigator({
Dashboard: {
screen: Dashboard
},
}, {
headerMode: 'screen',
});
const DetailsformStack = StackNavigator({
Detailsform: {
screen: Detailsform
},
}, {
headerMode: 'none'
});
const OtpStack = StackNavigator({
Otp: {
screen: Otp,
drawer: {
lockMode: 'locked-closed'
}
},
}, {
headerMode: 'none'
});
const MobilenumberStack = StackNavigator({
Mobilenumber: {
screen: Mobilenumber
},
}, {
headerMode: 'none'
});
const DrawerviewStack = StackNavigator({
Drawerview: {
screen: Drawerview
},
}, {
headerMode: 'none'
});
const ExamsheetStack = StackNavigator({
Examsheet: {
screen: Examsheet
},
}, {
headerMode: 'none'
});
const TopicStack = StackNavigator({
Topic: {
screen: Topic
},
}, {
headerMode: 'screen'
});
const DrawerStack = DrawerNavigator({
Otp: {
screen: OtpStack,
},
Dashboard: {
screen: DashboardStack,
},
Detailsform: {
screen: DetailsformStack,
},
Mobilenumber: {
screen: MobilenumberStack,
},
Drawerview: {
screen: DrawerviewStack,
},
Examsheet: {
screen: ExamsheetStack,
},
Topic: {
screen: TopicStack,
}
}, {
headerMode: 'none',
initialRouteName: 'Mobilenumber',
contentComponent: Drawerview,
lockMode: 'locked-closed'
});
export default DrawerStack
How can i add lock mode lockMode
to specific page.
i tried adding
drawer: {lockMode: 'locked-closed'}
in both components page and drawerNavigation page but it doesnt work.
Does react navigation have a lock mode feature or do i need to disable the swipe gesture?
If there is no feature then let me know how to disable swipe gesture for a particular component or page.
You can show Drawer navigato for specific page by adding the following
I also have faced this on react-navigation v2. as written in drawer docs the solution can be to define navigation options right after routes initialization and it forbids to display Drawer navigator in defined routes.
My routes looks like
And Options added, bellow routes.
Ans of @ajith helped me!
This is what my code looks like:
const DrawerStack = createDrawerNavigator( { Home: { screen: Home, navigationOptions: ({ navigation }) => ({ drawerLockMode: 'locked-closed', }) }, Dashboard: { screen: Dashboard}, ..... }, DrawerNavigatorConfig )
Hope this helps! :)
martnu gave a patch for this, but not yet merged. I tried to patch it manually and works perfectly.
It works with only change of two files: (reference to this page https://github.com/react-community/react-navigation/pull/793/files)
copy below code into
NavigationDrawerScreenOptions
, right aboveNavigationRouteConfigMap
, put into declaration ofNavigationDrawerScreenOptions
:copy below code into
render()
right before function return:and copy below code into returning
<DrawLayout>
props, right afterref
:you can disable the drawer on any screen by just adding:
and to enable drawer: