Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

116
Vistas
Renderizar contenido modal basado en contenido específico en React

Estoy mapeando una lista de diferentes socios de productos que tienen un enlace para saber más para mostrar un modal. Estoy tratando de averiguar cómo debo pasar accesorios al modal para que muestre la información correcta del compañero.

Aquí está mi código.

 import React,{useEffect , useState} from 'react' import Box from "@mui/material/Box"; import Button from "@mui/material/Button"; import Typography from "@mui/material/Typography"; import Modal from "@mui/material/Modal"; const json ; // this is some mockup api response , assume it has the properties referred to const style = { position: "absolute", top: "50%", left: "50%", transform: "translate(-50%, -50%)", width: 400, bgcolor: "background.paper", border: "2px solid #000", boxShadow: 24, p: 4, }; const Rewards = ()=>{ const [showModal, setModal] = useState(false); const handleClick = (e)=>{ console.log(e.target) if(showModal) setModal(false); else setModal(true) } return ( <div> <ul> {json.reward_partners.map((d, index)=>{ return ( <li key = {index}> <img src = {d.img} alt={d.name}/> <h3>{d.name}</h3> <p>{d.content}</p> <Button className="button" onClick= {handleClick}>Know More</Button> </li> ) })} <Modal open = {showModal} onClose={handleClick}> <Box sx = {style}> Text </Box> </Modal> </ul> </div> ) } export default Rewards

¿Cómo debo hacer para asignar accesorios a este modal? Gracias

about 4 years ago · Juan Pablo Isaza
2 Respuestas
Responde la pregunta

0

definir otro estado:

 const [dataMore, setDataMore] = useState();

Use atributos de datos en el botón. Luego pase los datos con el evento (e):

 <Button className="button" onClick= {handleClick} data-more={Whateverdata}>Know More</Button>

luego acceda a los datos después de hacer clic en leer más:

 const handleClick = (e)=>{ console.log(e.target) setDataMore(()=> e.dataset.more) if(showModal) setModal(false); else setModal(true) }

y finalmente usa ese estado en tu modal como contenido:

 <Modal open = {showModal} onClose={handleClick}> <Box sx = {style}> {dataMore} </Box> </Modal>

cada vez que elige otro elemento, el estado se actualiza, al igual que su modal.

about 4 years ago · Juan Pablo Isaza Denunciar

0

solo hazlo así, toma otro estado

 const [currentUser, setCurrentUser] = useState(null);

luego, cuando haga clic en un registro específico para abrir modal, establezca este estado también haciendo clic como:

 {json.reward_partners.map((d, index)=>{ return ( <li key = {index}> <img src = {d.img} alt={d.name}/> <h3>{d.name}</h3> <p>{d.content}</p> <Button className="button" onClick= {() => { setCurrentUser(d); handleClick(); }}>Know More</Button> </li> ) })}

y ahora tiene un registro específico para mostrar en el modal

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda