Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

182
Visualizações
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 Respostas
Responde à pergunta

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda