I have an app that needs to be able to use two drawer navigators, one on the left and on on the right side of the header.
I am at the point where I can get both drawers to open with the slide gesture, however I need to be able to open it programmatically. I have found the navigation.openDrawer()
function only works with one of the drawers and not the other because it is only able to use one of the navigation props (whichever comes first) from my drawer navigators.
Below are my rendering functions:
const LeftStack = createStackNavigator( { LeftDrawerStack }, { navigationOptions: ({navigation}) => ({ headerLeft: (<TouchableOpacity onPress={() => navigation.openDrawer()}><Icon style={{marginLeft: 10}} name='menu'/></TouchableOpacity> ) }) });const RightStack = createStackNavigator( { RightDrawerStack }, { navigationOptions: ({navigation}) => ({ headerRight: (<TouchableOpacity onPress={() => navigation.openDrawer()}><Icon style={{marginRight: 10}} name='ios-bulb'/></TouchableOpacity> ) }) });export const RouteStack = createStackNavigator( { screen: LoginScreen, navigationOptions: ({navigation}) => ({ header: null }), LeftStack, RightStack });
and here are my drawer routes:
export const LeftDrawerStack = createDrawerNavigator( { Dashboard: { screen: DashboardScreen }, History: { screen: HistoryScreen }, Privacy: { screen: PrivacyPolicyScreen }, TermsAndConditions: { screen: TermsAndConditionsScreen } }, { initialRouteName: 'Dashboard', contentComponent: LeftDrawerScreen });export const RightDrawerStack = createDrawerNavigator( { LeftDrawerStack, Settings: { screen: SettingsScreen } }, { drawerPosition: 'right', contentComponent: RightDrawerScreen });
Here is a picture of what I have the navigation looking like so far, however both of the hamburger menus are opening up the same menu on the right instead of one menu on their respective sides.
I may be missing some parts but I will be sure to post more info if I forgot any!