Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

186
Views
Cómo crear dinámicamente múltiples alertas dentro de mui v5 Snackbar

Estoy llamando a una API para realizar algunas acciones.
Quiero tomar la respuesta de cada acción y mostrarla dentro de Snackbar/alert.

Solo puedo mostrar la primera respuesta y nada más, incluso después de iterar los mensajes en un mapa.

Aquí está mi lógica de negocios llamando a la API

 try { const deletedUser = await deleteUser({ username: username }); [deletedUser.data.status.action1, deletedUser.data.status.action2].map( (msg) => setNotify({ isOpen: true, message: msg, type: "success", }) ); } catch (error) {}

setNotify abrirá el Snackbar con las alertas

 import React from "react"; import { Snackbar, Alert } from "@mui/material"; import { styled } from "@mui/material/styles"; const StyledSnackbar = styled((props) => <Snackbar {...props} />)( ({ theme }) => ({ "& .MuiSnackbar-root": { top: theme.spacing(15), }, }) ); export default function Notification(props) { const { notify, setNotify } = props; const handleClose = (event, reason) => { setNotify({ ...notify, isOpen: false, }); }; return ( <StyledSnackbar open={notify.isOpen} autoHideDuration={10000} anchorOrigin={{ vertical: "top", horizontal: "right" }} onClose={handleClose} > <Alert severity={notify.type} onClose={handleClose}> {notify.message} </Alert> </StyledSnackbar> ); }

El único problema es que solo muestra la primera acción y nada más.

Editar en Sandbox

Sospecho que las alertas se superponen entre sí Tal vez necesitamos agregar algún tipo de accesorio de AutoGrow

about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

Tienes que usar notistack como se describe en el documento MUI :

Este ejemplo demuestra cómo usar notistack . notistack tiene una API imperativa que facilita la visualización de snackbars, sin tener que manejar su estado abierto/cerrado. También le permite apilarlos uno encima del otro (aunque las pautas de Material Design no lo recomiendan).

Comience por envolver su aplicación dentro de un componente SnackbarProvider y luego use el gancho useSnackbar para acceder a enqueueSnackbar para agregar una barra de bocadillos a la cola que se mostrará:

Aplicación.js

 import "./styles.css"; import React from "react"; import { SnackbarProvider } from "notistack"; import Notification from "./Notification"; export default function App() { return ( <SnackbarProvider maxSnack={3}> <div className="App"> <h1>Dynamic Snackbar Alerts</h1> <Notification /> </div> </SnackbarProvider> ); }

Notificación.js

 import React from "react"; import { Button } from "@mui/material"; import { useSnackbar } from "notistack"; export default function Notification(props) { const { enqueueSnackbar } = useSnackbar(); const handleClick = async () => { try { const deletedUser = await deleteUser({ username: username }); [deletedUser.data.status.action1, deletedUser.data.status.action2].forEach((msg) => { enqueueSnackbar(msg, { variant: "success", autoHideDuration: 10000, anchorOrigin: { vertical: "top", horizontal: "right" } }); }); } catch (error) {} }; return ( <Button variant="outlined" onClick={handleClick}> Generate Snackbar Dynamicly </Button> ); }

Manifestación:

Editar luna-brillante-ikm0o

about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!