Пример модального окна React Native | Модальное окно в React Native

React Native Modal — это встроенный компонент, который используется для создания модальных всплывающих окон. Компонент Modal — это основной способ представления содержимого над закрывающим представлением. Мы используем компонент React Native под названием Modal для отображения изображения и текста. Если вам нужно больше контроля над тем, как представлять модальные окна в остальной части приложения, рассмотрите возможность использования навигатора верхнего уровня.

Пример модального окна React Native

Недавно я работал с модальными всплывающими окнами в React Native (снова!) и понял, что это повторяющийся шаблон во многих приложениях, о котором стоит немного рассказать. Итак, вот несколько моих уроков, которые я получил при многократной реализации модальных диалогов.

Примечание: во многих случаях вы можете прекрасно использовать встроенный модальный компонент из React Native. . Если это решит вашу проблему, вся сила вам!

Хорошо, давайте сначала установим React Native Project .

# Шаг 1. Установите React Native на Mac.

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

 npm install -g react-native-cli 

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

 react-  native init rncreatecd rncreate 

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

Для тестирования на iOS simulator, введите следующую команду.

 react-native run-ios 

Откройте проект в вашем любимом редакторе.

  код. 

# Шаг 2. Добавьте кнопку.

Мы отобразим две вещи внутри модального окна.

  1. Текст
  2. Изображение

Итак, внутри корня создайте одну папку с именем assets и внутри нее создайте одну папку с именем images , добавьте изображение с вашего локального компьютера и скопируйте изображение в эту папку.

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

//App.jsimport React, {Component} из 'react'; импортируйте Krunal из './assets/ images/Krunal.jpg '; импортировать {View, Button, StyleSheet} из' react-native '; экспортировать класс по умолчанию App extends Component {render () {return (  )}} const styles = StyleSheet.create ({container: {marginTop:  300,}}); 

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

Наша цель — когда пользователь нажимает кнопку, появляется модальное окно, в противном случае оно не всплывает, и мы его не видим. Итак, теперь мы импортируем еще один компонент и передаем Image и Text в качестве опоры для этого компонента.

Кроме того, по умолчанию Modal всегда открыт, поэтому нам нужно работать с ним по-своему. Вот почему нам нужно состояние, которое мы можем контролировать, и в конечном итоге мы контролируем Modal .

# Шаг 3: Создайте DisplayModal.js файл.

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

//DisplayModal.jsimport React from 'react'import {Modal, View, Image, Text, StyleSheet} из' react-native '; const DisplayModal = (props) => ( console.log ('closed')} >>    {props.data}   ) const styles = StyleSheet.create ({image: {marginTop: 20, marginLeft: 90, height: 200,  width: 200}, text: {fontSize: 20, marginLeft: 150}}) экспорт DisplayModal по умолчанию; 

DisplayModal — статический компонент, и он не имеет нг делать с государством. Поэтому я использовал его как функциональный компонент. Он просто принимает реквизиты и отображает их в стилизованной форме.

Вы можете заметить, что мы использовали свойство Modal visible . Поэтому, когда это правда, мы можем видеть модальное окно, иначе мы не видим модальное окно. Таким образом, он управляется родительским компонентом, а в нашем случае это

Итак, когда пользователь нажимает, мы меняем состояние отображения свойство внутри App.js на true , и теперь мы можем видеть Modal .

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

//App.jsimport React, {Component} из 'react'; import Krunal  from './assets/images/Krunal.jpg';import {View, Button, StyleSheet} из' react-native '; импортировать DisplayModal из' ./components/DisplayModal';export класс по умолчанию. Приложение расширяет Component {state = {display  : false} triggerModal () {this.setState (prevState => {return {display: true}});  } render () {return (   )}} const styles = StyleSheet. create ({container: {marginTop: 300,}}); 

Итак, здесь мы определили одно состояние, называемое display, и по умолчанию оно ложно. Когда пользователь нажимает на кнопку, она изменится на true, и мы увидим, что появится всплывающее окно Modal.

# 4: Модальные свойства.

Вы можете узнать больше о модальных свойствах по этой ссылке.

Здесь мы использовали одно модальное свойство, называемое

Он имеет следующие значения.

  1. слайд: вставляется снизу.
  2. fade: исчезает из поля зрения.
  3. none: отображается без анимации.

Мы использовали слайд , но вы можете попытаться исчезнуть и посмотреть, как это может изменить эффект анимации макета.

Visible

Свойство visible принимает два аргумента.

  1. true
  2. false

Если это правда, то это будет видно внутри экрана, в противном случае — нет. Мы передали свойство visible внутри модального окна при нажатии кнопки.

Наконец, React Native Modal Example | Модальное окно In React Native Tutorial окончено.

# Базовая версия React Native Modal Popup

Представьте себе модальное окно, которое мы можем увидеть во множестве простых приложений. В таком базовом случае видимость модального окна управляется внутренне локальным состоянием некоторого компонента. См. Следующий код.

 class NewScreen extends Component {state = {showConfirmation: false};  handleSubmit = value => {this.setState ({showConfirmation: true, value: value});  }; //Обработчик, когда пользователь подтверждает свой выбор в модальном handleConfirm = () => {//…}; //Обработчик, когда пользователь отменяет диалоговое окно подтверждения handleCancel = () => {this.setState ({showConfirmation: false});  };  render () {const {showConfirmation} = this.state;  return ( {showConfirmation && } );  }} экспорт по умолчанию NewScreen; 

Это типичный модальный экран, который я видел много раз. Его видимость обрабатывается родительским компонентом путем изменения его внутреннего состояния.

Мы получим showConfirmation из локального состояния и, в зависимости от того, установлено оно или нет, показать или скрыть диалоговое окно подтверждения.

Мы также передали бы туда кнопки handleConfirm и handleCancelbuttons, которые позаботятся о логике, которая должна произойти, когда пользователь нажимает любой из них.

Основной преимущества этого решения в том, что оно простое, легко читаемое (и обдумываемое) и легко настраиваемое в любом представлении..

Основные недостатки заключаются в том, что, хотя он и прост, есть код управления, который нам нужно написать в каждом компоненте, который его использует, и его можно настроить везде, где он используется. что затрудняет его глобальное изменение.

Рекомендуемые сообщения

React Native Swipe Components

Пример React Native Drawer Navigator

Пример просмотра вкладки React Native

Нативная навигация с использованием React Native Navigation

Учебное пособие по примерам React Native Redux

Пример React Native Fetch

Учебное пособие по React Native Animation

Пример React Native FlatList

React Native Firebase Пример

Как настроить React Native с помощью Expo

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