import React, { Component } from 'react'; import { Text, View, ScrollView, Dimensions, TouchableOpacity, } from 'react-native'; import { Themed, NavigationActions } from 'react-navigation'; import { createStackNavigator, NavigationStackScreenComponent, } from 'react-navigation-stack'; import { createDrawerNavigator, DrawerContentComponentProps, DrawerActions, } from 'react-navigation-drawer'; class RightDrawer extends Component { state = { categories: [ { i: 'c1', n: 'name1' }, { i: 'c2', n: 'name2' }, ], }; render() { return ( {this.state.categories.map(key => { return ( { let nid = key.i; this.props.navigation.dispatch( NavigationActions.navigate({ routeName: 'CategoryScreen', params: { id: nid, title: key.n, }, }) ); this.props.navigation.dispatch(DrawerActions.closeDrawer()); }} > {key.n} ); })} ); } } const CategoryScreen: NavigationStackScreenComponent = ({ navigation }) => { return ( CategoryScreen {navigation.getParam('title')} ); }; const AppNavigator = createStackNavigator( { CategoryScreen, }, { defaultNavigationOptions: { title: 'RTL Test', headerStyle: { backgroundColor: '#0f5599', }, headerTintColor: 'white', headerBackTitleStyle: { color: 'white', }, }, } ); const DrawerNavigator = createDrawerNavigator( { Item1: { screen: AppNavigator, }, }, { contentComponent: RightDrawer, drawerLockMode: 'unlocked', drawerPosition: 'right', drawerWidth: () => { return Dimensions.get('window').width - 150; }, drawerType: 'slide', drawerBackgroundColor: '#333333', backBehavior: 'none', } ); export default DrawerNavigator;