React Native Navigation Drawer с некоторыми базовыми функциями!
Итак, мы собираемся создать навигационный ящик здесь, но перед этим вам нужно сначала установить некоторые зависимости.
1. react-navigation 2. react-navigation-drawer 3. react-navigation-stack
Структура проекта
Contect.js
import React, { Component } from 'react'; import { View, Text } from 'react-native'; export default class ContectScreen extends Component { render() { return ( <View style={{ alignItems: 'center' }}> <Text>ContectScreen</Text> </View> ); } }
Таким образом, этот же код вы можете написать в List.js , Profile.js , Notification.js , Logout.js , но с другим именем в текстовом теге.
теперь мы собираемся создать файл App.js, в котором мы напишем фактический код навигации для ящика.
App.js
import React, { Component } from 'react'; import { createAppContainer, createSwitchNavigator } from 'react-navigation'; import { SafeAreaView, ScrollView, View, Text, ImageBackground, Image, } from 'react-native'; import Icon from 'react-native-vector-icons/Ionicons'; import { createDrawerNavigator, DrawerItems } from 'react-navigation-drawer'; import { createStackNavigator } from 'react-navigation-stack'; import LandingScreen from './components/Landing'; import HomeScreen from './components/Home'; import ContectScreen from './components/Contect'; import ListScreen from './components/List'; import LogoutScreen from './components/Logout'; export default class App extends Component { render() { return <AppContainer />; } } const LandingStackNavigator = createStackNavigator( { Profile: LandingScreen, }, { defaultNavigationOptions: ({ navigation }) => { return { headerLeft: ( <Icon style={{ paddingLeft: 10 }} onPress={() => navigation.openDrawer()} name="md-menu" size={30} /> ), }; }, } ); const HomeStackNavigator = createStackNavigator( { Notification: HomeScreen, }, { defaultNavigationOptions: ({ navigation }) => { return { headerLeft: ( <Icon style={{ paddingLeft: 10 }} onPress={() => navigation.openDrawer()} name="md-menu" size={30} /> ), }; }, } ); const ContectStackNavigator = createStackNavigator( { Contect: ContectScreen, }, { defaultNavigationOptions: ({ navigation }) => { return { headerLeft: ( <Icon style={{ paddingLeft: 10 }} onPress={() => navigation.openDrawer()} name="md-menu" size={30} /> ), }; }, } ); const ListStackNavigator = createStackNavigator( { List: ListScreen, }, { defaultNavigationOptions: ({ navigation }) => { return { headerLeft: ( <Icon style={{ paddingLeft: 10 }} onPress={() => navigation.openDrawer()} name="md-menu" size={30} /> ), }; }, } ); const LogoutStackNavigator = createStackNavigator( { Logout: LogoutScreen, }, { defaultNavigationOptions: ({ navigation }) => { return { headerLeft: ( <Icon style={{ paddingLeft: 10 }} onPress={() => navigation.openDrawer()} name="md-menu" size={30} /> ), }; }, } ); const DrawerNavigator = createDrawerNavigator( { Profile: { screen: LandingStackNavigator, navigationOptions: { drawerIcon: ({ tintColor }) => ( <Icon name="user" size={16} color={tintColor} /> ), }, }, Notification: { screen: HomeStackNavigator, navigationOptions: { drawerIcon: ({ tintColor }) => ( <Icon name="user" size={16} color={tintColor} /> ), }, }, Contect: { screen: ContectStackNavigator, navigationOptions: { drawerIcon: ({ tintColor }) => ( <Icon name="user" size={16} color={tintColor} /> ), }, }, List: { screen: ListStackNavigator, navigationOptions: { drawerIcon: ({ tintColor }) => ( <Icon name="user" size={16} color={tintColor} /> ), }, }, Logout: { screen: LogoutStackNavigator, navigationOptions: { drawerIcon: ({ tintColor }) => ( <Icon name="user" size={16} color={tintColor} /> ), }, }, }, { contentComponent: props => ( <ScrollView style={{ flex: 1 }}> <ImageBackground source={require('./assets/images.jpg')} style={{ width: undefined, padding: 16, paddingTop: 48 }}> <Image source={require('./assets/back.png')} style={{ width: 80, height: 80, borderRadius: 40, borderWidth: 3, borderColor: '#FFF', }} /> </ImageBackground> <View style={{ flex: 1 }}> <DrawerItems {...props} /> </View> </ScrollView> ), } ); const navigator = createSwitchNavigator({ Profile: { screen: DrawerNavigator, }, Notification: { screen: HomeScreen, }, }); const AppContainer = createAppContainer(navigator);
в App.js DrawerNavigator — бесполезная часть для перехода с одного экрана на другой с помощью навигационного Drawer.
если вы столкнулись с какой-либо ошибкой, отправьте сообщение Здесь
поэтому надеюсь, что вы понимаете эту концепцию!
Подпишитесь на мой Канал YouTube, чтобы узнать больше