Использование навигатора стека может помочь вашему приложению переходить с одного экрана на другой с минимумом кода.
Часто при создании приложения React Native вы будете составлять его из разных экранов, таких как «Вход», «Домой» и «О программе». Затем вам нужно будет реализовать механизм навигации, чтобы ваши пользователи могли перемещаться по приложению и получать доступ к его отдельным экранам в правильном порядке.
Цель этого руководства — провести вас через процесс настройки системы навигации в вашем приложении React Native. Это включает в себя установку библиотеки, добавление ваших экранов в навигатор стека и соединение экранов внутри каждого из ваших компонентов.
Прежде чем вы начнете
Чтобы следовать этому руководству на локальном компьютере, вам необходимо установить следующее:
- Node.js v10 или выше
- Xкод или Android-студия (настроен для запуска эмулятора)
- Реагировать на собственный интерфейс командной строки
Пошаговые инструкции по настройке среды разработки React Native см. официальный React Native документация по настройке.
Прежде чем вы начнете рассматривать, как реализовать навигацию в нашем приложении React Native, давайте разберемся, как работает механизм навигации по стеку в React Native.
Понимание того, как работает навигация по стеку
Представьте, что ваше приложение React Native представляет собой стек. Изначально в этом стеке у вас есть Дом, который является первым экраном, который отображается при открытии приложения.
Если бы вам нужно было перейти к О скрин из Дом экран, приложение будет нажимать О в стек, поэтому он находится поверх Дом. Точно так же приложение помещает каждый новый экран, на который вы переходите, в стек.
Теперь, если вы хотите вернуться к предыдущему экрану, приложение извлечет ваш текущий экран из стека и покажет вам тот, который находится под ним. Это поведение похоже на то, что происходит, когда вы нажимаете значок «Назад» в веб-браузере.
Имея четкое представление о механизме навигации по стеку, пришло время настроить его в приложении React Native.
1. Установите React Navigation для нативных приложений
Для начала установите Пакет навигации React для нативных приложений в вашем проекте React Native, выполнив эту команду на терминале:
нпм я @реагировать-навигация/родной
Пакет, который вы только что установили, требует Реагировать на нативный стек и Реагировать на родные экраны правильно бегать. Чтобы установить стек RN, запустите:
нпм я @реагировать-навигация/родной-куча
Чтобы установить второй, запустите это:
npm я реагирую-родной-экраны
Теперь у вас есть все необходимое, чтобы приступить к созданию механизма навигации в вашем приложении. Следующим шагом будет установка экранов.
2. Настройте экран в своем приложении React Native
В этом примере мы создадим всего два экрана — домашний экран и экран сведений.
Создайте папку с именем экраны внутри корневого каталога вашего приложения. После этого создайте два файла с именами HomeScreen.js и AboutScreen.js внутри каталога. экраны.
Что добавить в файл HomeScreen.js
Откройте файл HomeScreen.js и начните с импорта следующего:
Импортировать * как Реагировать от«реагировать»;
Импортировать { Текст, Вид, Таблица стилей, TouchableOpacity } от«реагирующий нативный»;
Импортировать { состояние использования } от«реагировать»
Затем создайте функциональный компонент HomeScreen и получите доступ к объекту навигации, используя деконструкцию объекта (согласно Реагируйте на лучшие практики), затем верните заголовок и кнопку для перехода к экрану «О программе»:
экспортпо умолчаниюфункцияДомашний экран({навигация}) {
возвращаться (
<Видстиль={стили.контейнер}>
<Текстстиль={стили.параграф}> Домашний экран Текст>
название =«Перейти к информации»
onPress={() => navigation.navigate(«Об экране»)}
/>
Вид>
);
}
Здесь мы говорим React Native перейти к О когда пользователь нажимает кнопку. В этом случае мы не передаем никаких данных на экран. Но предположим, что вы хотите передать данные в функцию; вот как вы это сделаете:
экспортпо умолчаниюфункцияДомашний экран({навигация}) {
константа данные = { веб-сайтНазвание: "Технология Джона" }
возвращаться (
<Видстиль={стили.контейнер}>
// Здесь будет текст
название =«Перейти к информации»
onPress={() => navigation.navigate(«Об экране», данные)}
/>
Вид>
);
}
Теперь при нажатии на кнопку этот код передает данные на следующий экран, О. Внутри ОScreen.js файл, вы можете получить доступ к данным из маршрута и отобразить их в пользовательском интерфейсе.
Что добавить в файл AboutScreen.js
Откройте файл AboutScreen.js и начните с импорта следующих зависимостей:
Импортировать * как Реагировать от«реагировать»;
Импортировать { Текст, Вид, Таблица стилей, Кнопка } от«реагирующий нативный»;
Далее создайте О экране функциональный компонент, который получает данные из route.params свойство и возвращает данные в пользовательском интерфейсе:
экспортпо умолчаниюфункцияО экране({маршрут}) {
позволять dataObj = маршрут.парамс
возвращаться (
<Видстиль={стили.контейнер}>
<Текстстиль={стили.параграф}>
Этот является экран «О программе» {dataObj.websiteName}
Текст>
Вид>
);
}
Если вы помните, мы указали одно свойство в объекте данных с именем веб-сайтНазвание, который мы теперь визуализируем внутри компонент. Вы можете добавить в объект столько свойств, сколько хотите, и получить к ним доступ внутри компонента целевых экранов.
Следующим шагом является настройка нашего навигатора стека с двумя экранами.
3. Соединение экранов с помощью Stack Navigator
Внутри App.js начните с импорта следующих зависимостей:
Импортировать * как Реагировать от«реагировать»;
Импортировать Домашний экран от'./экраны/Домашний экран'
Импортировать О экране от'./экраны/AboutScreen'
Импортировать {Контейнер навигации} от"@реагировать-навигация/родной"
Импортировать {создатьNativeStackNavigator} от"@react-navigation/native-stack"
Во второй и третьей строках мы импортировали два только что созданных экрана. Затем мы импортировали НавигационныйКонтейнер
от @реагировать-навигация/родной и создатьNativeStackNavigator от @реагировать-навигация/родной-стек чтобы помочь нам подключить экраны.
Далее звоните создатьNativeStackNavigator чтобы получить стек:
константа Стек = createNativeStackNavigator()
Это позволяет нам «складывать» экраны, между которыми вы хотите переключаться в вашем приложении.
Создайте функцию компонента приложения и верните оба экрана в как показано ниже. Обязательно заверните его в или не получится:
экспортпо умолчаниюфункцияПриложение() {
возвращаться (
<НавигационныйКонтейнер>
<Куча. Навигатор>
<Куча. Экранимя="Домашний экран"компонент = {Домашний экран} />
<Куча. Экранимя="Об экране"компонент = {Об экране} />
Куча. Навигатор>
НавигационныйКонтейнер>
);
}
Этот код помещает экран HomeScreen поверх стека, что означает, что приложение сначала отобразит компонент Home, когда завершит загрузку.
Теперь все установлено. Вы можете протестировать приложение, нажав кнопку Перейти к О программе кнопку на домашнем интерфейсе. Это должно перенаправить вас на О, и вы найдете веб-сайтНазвание свойство, отображаемое в пользовательском интерфейсе:
Лучшее в использовании React Navigation for Native — это простота настройки и использования. Он не требует никаких дополнительных настроек (кроме установленных вами необходимых библиотек), а также вы можете подключить различные типы платного доступа (если вы собираетесь создать приложение на основе подписки).
Узнайте больше о React Native
React Native — это кроссплатформенный фреймворк для создания приложений, работающих на устройствах Android и iOS. О React Native можно узнать так много, и если вы новичок в использовании фреймворка, вам следует начать с изучения основ.