Пример React Native Drawer Navigator

Пример React Native Drawer Navigator — ведущая тема сегодняшнего дня. React Native Navigation — это надежная библиотека, которая помогает нам создавать навигацию между разными экранами, навигацию по ящикам и навигацию по вкладкам в нашем React Native сильные> приложения. Мы также используем иониконы для отображения значков на экране. После этого примера вы можете создать ящик, который будет переключаться в зависимости от кнопки. Давайте начнем этот Пример React Native Drawer Navigator с установки React Native на Mac .

Если вы хотите узнать больше о React Native и Redux, пройдите этот курс. Полный курс React Native и Redux

Пример React Native Drawer Navigator

Установите React Native с помощью React Native CLI . Если вы не установили React Native CLI, установите его глобально с помощью следующей команды.

# 1: Установить React Native.

Введите следующую команду, чтобы установить его глобально.

 sudo npm install -g react-native-cli 

Теперь, создайте проект React Native, используя следующую команду.

 react-native init drawer 

Перейдите в папку проекта.

 cd drawer 

Установите стороннюю библиотеку , используя следующую команду.

 yarn add response-native-navigation react-native-vector-icons 

Теперь свяжите эти зависимости или настройте его в нашем проекте с помощью следующей команды.

 response-native link 

Также нужно изменить одну вещь, если сделано неправильно.

В Xcode вам нужно будет отредактировать этот файл: AppD elegate.m .

Заменить весь его код этой ссылкой

Заменить @ "index.ios" с @ "index" , если вы используете index.js в качестве точки входа вместо index.ios.js и index.android.js (это значение по умолчанию, начиная с React Native 0.49).

# 2: Создайте HomeScreen для нашего приложения.

Внутри корневой папки создайте одну папку с именем screen. Внутри этой папки создайте один файл с именем HomeScreen.js. Напишите внутри него следующий код.

//HomeScreen.jsimport React, {Component} из 'react'; import {View, Text, Button} из 'react-native';  класс экспорта по умолчанию HomeScreen расширяет Component {onButtonPress = () => {console.log ('Button Pressed !!')} render () {return (  Home Screen   );  }} 

Хорошо, теперь внутри файла App.js напишите следующий код. Нам нужно зарегистрировать компонент навигации.

//App.jsimport {Navigation} из response-native-navigation '; импортировать HomeScreen из' ./screens/HomeScreen';Navigation.registerComponent ('  drawer.HomeScreen ', () => HomeScreen); Navigation.startSingleScreenApp ({screen: {screen:' drawer.HomeScreen ', title:' Home '}}); 

# 3: Создайте файл index.ios.js внутри корня.

У нас уже есть один файл с проектом под названием index.js , но мы не будем его использовать. Вместо этого мы создаем iOS специально, поэтому ее имя

Напишите следующую строку кода внутри индекса . .ios.js файл.

//index.ios.jsimport приложение из './App'; 

# 4 : Создайте еще один экран.

Внутри папки Screens создайте один файл с именем AnalyticsScreen.js и добавьте следующий код внутри него.

//AnalyticsScreen.jsimport React, {Component} из 'react'; импорт {View, Text} из 'react-native'; экспорт класса по умолчанию AnalyticsScreen расширяет Component {  render () {return (  Your AnalyticsScreen  )}} 

Теперь зарегистрируйте этот экран в App.js файл.

//App.jsimport {Navigation} из 'react-native-navigation'; импортировать HomeScreen из './screens/HomeScreen'; импортировать AnalyticsScreen из './screens/AnalyticsScreen  '; Navigation.registerComponent (' drawer.HomeScreen ', ()  => HomeScreen); Navigation.registerComponent ('drawer.AnalyticsScreen', () => AnalyticsScreen); Navigation.startSingleScreenApp ({screen: {screen: 'drawer.HomeScreen', title: 'Home'}}); 

# 5: Создайте компонент SideDrawer.

Внутри папки screen создайте один файл с именем SideDrawer.js и добавьте следующий контент.

Это компонент, который мы будем отображать как выдвижной элемент боковой панели.

// SideDrawer.jsimport React, {Component} из 'react'; импорт {View, Text, Dimensions, StyleSheet} из 'react-native'; экспортный класс по умолчанию SideDrawer расширяет Component {render () {return (  SideDrawer  )}} const styles = StyleSheet.create ({container: {marginTop: 22, backgroundColor: 'white', width: Dimensions.get ("окно").  width * 0.8}}); 

Теперь нам нужен один файл конфигурации с именем startMainTab.js внутри папка экранов. Итак, давайте создадим его.

//startMainTab. jsimport {Навигация} из 'react-native-navigation'; импортировать значок из 'react-native-vector-icons/Ionicons';  const startTabs = () => {Promise.all ([Icon.getImageSource ("ios-share-alt", 30), Icon.getImageSource ("ios-menu", 30)]). then (sources => {Навигация  .startTabBasedApp ({вкладки: [{screen: 'drawer.AnalyticsScreen', label: 'Analytics', title: 'Analytics', icon: sources [0], navigatorButtons: {leftButtons: [{icon: sources [1], title]  : "Menu", id: 'sideDrawerToggle'}]}}], ящик: {left: {screen: 'drawer.SideDrawer'}}});});} экспорт startTabs по умолчанию; 

Итак, здесь мы использовали одну вкладку с названием AnalyticsScreen.js. Кроме того, мы прикрепили к нему ящик.

Теперь нам нужно импортировать его в файл HomeScreen.js . Поэтому, когда пользователь нажимает кнопку, мы видим вкладку AnalyticsScreen .

//AnalyticsScreen.jsimport React, {Component} from 'response'; import  {View, Text, Button} из 'react-native'; импортировать startMainTab из './startMainTab'; экспортировать класс по умолчанию HomeScreen расширяет компонент {onButtonPress = () => {startMainTab ();  } render () {return (  Главный экран  );  }} 

Хорошо, теперь запустите приложение с помощью следующей команды.

 react-native run-ios 

Теперь вы см. главный экран, как показано на изображении ниже.

Теперь щелкните вкладку «Навигация по вкладкам», и вы увидите следующий экран.

# 6: Завершение работы с ящиком.

Внутри AnalyticsScreen.js , нам нужно добавить событие, которое может переключать Drawer. Итоговый файл выглядит так, как показано ниже.

//AnalyticsScreen.jsimport React, {Component} из 'react'; импорт {View, Text} из 'react-native'; экспорт класса по умолчанию AnalyticsScreen расширяет Component  {конструктор (реквизит) {супер (реквизит);  this.props.navigator.setOnNavigatorEvent (this.onNavigatorEvent);  } onNavigatorEvent = событие => {if (event.type === "NavBarButtonPress") {if (event.id === "sideDrawerToggle") {this.props.navigator.toggleDrawer ({сторона: 'left'});  }}} render () {return (  Your AnalyticsScreen  )}} 

Также зарегистрируйте SideDrawer.js внутри файла App.js .

//App.jsimport {Navigation} из response-native-navigation '; импортировать HomeScreen из' ./ screen/HomeScreen '; импортировать AnalyticsScreen из'./screen/AnalyticsScreen '; импортировать SideDrawer из' ./screens/SideDrawer';Navigation.registerComponent('drawer.HomeScreen ', () => HomeScreen); Navigation.registerComponent (' drawer.SideDrawer ', () => SideDrawer)  ; Navigation.registerComponent ('drawer.AnalyticsScreen', () => AnalyticsScreen); Navigation.startSingleScreenApp ({screen: {screen: 'drawer.HomeScreen', title: 'Home'}}); 

Сохраните файл, перейдите в Симулятор и обновите экран. Теперь вы можете переключать ящик.

Наконец, мы достигли нашей цели и создали рабочий ящик. Пример React Native Drawer Navigator завершен. Спасибо, что взяли. Я разместил этот код на Github.

Код Github

Оцените статью
nanomode.ru
Добавить комментарий