请参考以下帖子,这非常有帮助。
https://github.com/react-navigation/react-navigation/issues/131。有许多方法被建议。kyaroru 提供了一个完整的工作示例,如下所示:
https ://github.com/kyaroru/ReactNavDrawer 。
下面是一个更简单的例子:
应用程序.js
import React from 'react';
import { createStackNavigator , createDrawerNavigator } from 'react-navigation';
import LoginScreen from './LoginScreen';
import SignupScreen from './SignupScreen';
import HomeScreen from './HomeScreen';
import DrawerButton from './DrawerButton';
import SettingScreen from './SettingScreen';
const StackNavigator = createStackNavigator ({
Login: {
screen: LoginScreen,
},
Signup: {
screen: SignupScreen,
},
Home: {
screen: HomeScreen,
},
Sitting: {
screen: SettingScreen,
},
},
{
navigationOptions: ({navigation}) => ({
headerLeft: <DrawerButton navigation={navigation} />,
}),
}
);
const DrawerNavigator = createDrawerNavigator({
Menu: {
screen: StackNavigator,
},
Signup: {
screen: SignupScreen,
},
Sitting: {
screen: SettingScreen,
},
});
export default DrawerNavigator;
抽屉按钮.js
import React from 'react';
import { TouchableOpacity, Platform } from 'react-native';
import Ionicons from 'react-native-vector-icons/Ionicons';
import PropTypes from 'prop-types';
const DrawerButton = ({ navigation }) => (
<TouchableOpacity
onPress={() => navigation.openDrawer()}
>
<Ionicons name={Platform.OS === 'ios' ? 'ios-menu' : 'md-menu'} size={28} />
</TouchableOpacity>
);
DrawerButton.propTypes = {
navigation: PropTypes.object.isRequired,
};
export default DrawerButton;