Mostrar notificación con React
Hoy vamos a ver cómo mostrar una notificación o Toast usando React. Esta notificación puede venir de cualquier lugar o servir para reaccionar a una acción del usuario.
Por ejemplo, podemos mostrar un mensaje de éxito o mensaje de error al enviar un formulario, entre otras cosas.
No vamos a ver cómo enviar y recibir notificaciones con sockets o esas cosas, sino simplemente una librería para mostrar Toasts o mensajes emergentes en React.
Una librería que yo he usado para algunos proyectos es React-Toastify. Se instala con:
npm install --save react-toastify
Ahora debemos importar tanto su CSS como el componente en donde el toast se va a montar:
import { ToastContainer, toast } from 'react-toastify';
import 'react-toastify/dist/ReactToastify.css';
Ahora podemos mostrar una notificación de manera sencilla. Es importante que dentro de nuestro componente coloquemos el contenedor de Toast <ToastContainer>
.
Por ejemplo, yo lo tengo en un formulario:
render() {
return (
<div className="column is-one-third">
<h1 className="is-size-3">Agregar videojuego</h1>
<ToastContainer></ToastContainer>
<form className="field" onSubmit={this.manejarEnvioDeFormulario}>
<div className="form-group">
<label className="label" htmlFor="nombre">Nombre:</label>
<input autoFocus required placeholder="Nombre" type="text" id="nombre" onChange={this.manejarCambio} value={this.state.videojuego.nombre} className="input" />
</div>
<div className="form-group">
<label className="label" htmlFor="precio">Precio:</label>
<input required placeholder="Precio" type="number" id="precio" onChange={this.manejarCambio} value={this.state.videojuego.precio} className="input" />
</div>
<div className="form-group">
<label className="label" htmlFor="calificacion">Calificación:</label>
<input required placeholder="Calificación" type="number" id="calificacion" onChange={this.manejarCambio} value={this.state.videojuego.calificacion} className="input" />
</div>
<div className="form-group">
<button className="button is-success mt-2">Guardar</button>
<Link to="/videojuegos/ver" className="button is-primary mt-2">Volver</Link>
</div>
</form>
</div>
);
}
Fíjate en la línea 5, estoy definiendo el contenedor dentro de mi div
. Ahora es fácil mostrar un Toast desde JavaScript, basta con invocar a toast
. En mi caso lo hago cuando el envío del formulario es exitoso:
toast('Videojuego guardado 🎮', {
position: "top-left",
autoClose: 2000,
hideProgressBar: false,
closeOnClick: true,
pauseOnHover: true,
draggable: true,
progress: undefined,
});
Estas notificaciones en React son totalmente personalizables, puedes enviar una de éxito, error, advertencia, etcétera.
En la documentación oficial puedes encontrar más opciones de personalización. Yo lo he usado en la conexión que hice con PHP y en la app con la pila MERN. Recuerda que puedes leer más sobre React en mi blog.
El día de hoy vamos a ver cómo restablecer la impresora térmica GOOJPRT PT-210 a…
Hoy voy a enseñarte cómo imprimir en una impresora térmica conectada por USB a una…
En este post voy a enseñarte a programar un servidor web en Android asegurándonos de…
En este post te quiero compartir un código de C++ para listar y cancelar trabajos…
Gracias a WebAssembly podemos ejecutar código de otros lenguajes de programación desde el navegador web…
Revisando y buscando maneras de imprimir un PDF desde la línea de comandos me encontré…
Esta web usa cookies.