Cómo implementar un componente modal en React
Introducción
Los modales son ventanas independientes dentro de una aplicación, generalmente como un cuadro de diálogo. Son un patrón común de interfaz de usuario para proporcionar información o solicitar confirmación.
En este tutorial aprenderás a implementar un componente modal en tu proyecto React. Crearás un Dashboard
componente para administrar el estado y un botón para acceder al modal. También desarrollarás un Modal
componente para crear un modal y un botón para cerrar. Tu proyecto mostrará y cerrará un modal al hacer clic en un botón.
Prerrequisitos
Para completar este tutorial, necesitarás:
- Es necesario tener conocimientos básicos de React antes de comenzar este tutorial. Puedes aprender más sobre React siguiendo la serie Cómo codificar en React.js .
Paso 1: iniciar el Dashboardcomponente
El panel es donde mostrarás tu modal. Para comenzar con el panel, importa una instancia de React y el Component
objeto en tu Dashboard.js
archivo. Declara un Dashboard
componente y establece su estado:
Tablero de mandos.js
import React, { Component } from "react";class Dashboard extends Component { constructor() { super(); this.state = { show: false }; this.showModal = this.showModal.bind(this); this.hideModal = this.hideModal.bind(this); } showModal = () = { this.setState({ show: true }); }; hideModal = () = { this.setState({ show: false }); };}export default Dashboard
Su estado incluye la propiedad show
con el valor false
. Esto le permite ocultar el modal hasta que un usuario le solicite que lo abra. Las funciones showModal()
actualizan su estado con el .setState()
método para cambiar el valor de su show
propiedad a true
cuando un usuario abre el modal. Del mismo modo, el .setState()
método en su hideModal()
función cerrará el modal y cambiará el valor en su show
propiedad a false
.
Nota: Recuerde vincular sus funciones al constructor()
usar el .bind()
método.
Una vez que haya aplicado su estado y funciones, su render()
método de ciclo de vida se encargará de mostrar su modal dentro de la return()
declaración:
Tablero de mandos.js
import React, { Component } from "react";class Dashboard extends Component { // ... render() { return ( main h1React Modal/h1 button type="button" onClick={this.showModal} Open /button /main ); }}export default Dashboard
Acepta button
el atributo React JSX onClick
para aplicar la .showModal()
función y abrir el modal. Exportarás tu Dashboard
componente a un componente de orden superior App
conectado a tu archivo HTML raíz.
Paso 2: construcción del Modalcomponente
Cree un nuevo archivo Modal.js
y declare un componente funcional sin estado Modal
con tres argumentos, handleClose
, show
y children
. El argumento show
representa la show
propiedad en su estado:
Modal.js
import './modal.css';const Modal = ({ handleClose, show, children }) = { const showHideClassName = show ? "modal display-block" : "modal display-none"; return ( div className={showHideClassName} section className="modal-main" {children} button type="button" onClick={handleClose} Close /button /section /div );};
Su return()
declaración pasa el argumento children
, representado como props.children
, es una referencia a la funcionalidad de abrir y cerrar el modal. El modal también contiene un botón con un atributo React JSX onClick
que acepta el hideModal()
método, representado aquí como el argumento handleClose
, pasado como props a su Dashboard
componente.
La variable showHideClassName
asigna su valor a una condición para verificar si el valor de la show
propiedad en su estado es true
. Si es así, aparecerá el modal. De lo contrario, se ocultará. Las propiedades display-block
y display-none
para mostrar y ocultar el modal se manejan a través del modal.css
archivo importado en su Modal
componente.
Inicie un nuevo archivo modal.css
y establezca las reglas para diseñar el tamaño, el color y la forma de su archivo Modal
:
modal.css
.modal { position: fixed; top: 0; left: 0; width:100%; height: 100%; background: rgba(0, 0, 0, 0.6);}.modal-main { position:fixed; background: white; width: 80%; height: auto; top:50%; left:50%; transform: translate(-50%,-50%);}.display-block { display: block;}.display-none { display: none;}
Esto producirá un modal centrado con un contorno de cuadro blanco y un fondo sombreado. Una vez que haya Modal
completado el componente, integrémoslo en su Dashboard
.
Paso 3 — Incorporación del Modalcomponente
Para combinar su Modal
en su Dashboard
, navegue hasta su Dashboard.js
archivo e importe su Modal
componente debajo de su instancia de React:
Tablero de mandos.js
import React, { Component } from "react";import Modal from './Modal.js';class Dashboard extends Component { // ... render() { return ( main h1React Modal/h1 Modal show={this.state.show} handleClose={this.hideModal} pModal/p /Modal button type="button" onClick={this.showModal} Open /button /main ); }}export default Dashboard
En su return()
declaración, incluya su Modal
componente para mostrar y ocultar el modal. Los atributos show
y handleClose
son propiedades de su Modal
componente para administrar la lógica de su estado y la hideModal()
función.
Sus componentes Dashboard
y Modal
ahora se mostrarán en su navegador:
Observe cómo ahora se abre y se cierra su nuevo Modal
componente.
Conclusión
En este tutorial, aprendió cómo se puede usar React para implementar modales pasando propiedades y funcionalidades de un componente a otro.
Para ver este proyecto en vivo, aquí hay una demostración de CodePen de este proyecto.
Deja una respuesta