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

124
Vistas
take out name of dynamically created cards react

I had created some cards from an array of objects, now I want to show popup data for each card differently. here is my code of printing

{data.carData.map( single=>(<li>{ <div  onClick={handleClick}><Card single={single}/></div>} </li>))}

for this, I want the card name onClick event, but when I pass anything in the handleClick react throw an error of too many re-renders.

if I do the same onClick event inside the card component and log it prints all the cards names one by one here is what is inside the card:

 function Card({single}) {
const [flowName, setflowName] = useState();
const handleClick=(e)=>{
    setflowName(e);
    return
}
console.log("loging name:",flowName);
return (
         <div className="main mb-2 z-0" onClick={handleClick(e=>single?.flowName)} >
       <div  className=" inner_main_container pt-4 px-8 bg-white shadow-lg rounded-lg ">
           <div className="flex justify-between">
               <div className="flex flex-row align-center">

               </div>
              
                   {single?.badge.map(badge=>(

                       <div className={"badge"} key={badge}>
                       <span className={badge==="Growth"?" badgeClrG":(badge==="Content"?"content":"badgeClrO")} key={badge}>{badge}</span>
                       </div>
                   )    )}
                   
           </div>
           <div className="flex justify-center">
           <img src={single?.image} alt={single?.flowName} />
           </div>
           <div >
               <div className={"mt-2 flex justify-center"}>
                   <h1>{single?.flowName}</h1>
               </div>
           </div>
        </div>
        </div>            

)   }   export default Card
about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

I suspect you're doing this when you're trying to pass a value:

single=>(<li>{ <div  onClick={handleClick(value)}><Card single={single}/></div>} </li>))}

Every time this is rendered, the function is invoked straight away, which causes another render and so on...

The solution is to wrap your handleClick call in another function:

single=>(<li>{ <div  onClick={()=>handleClick(value)}><Card single={single}/></div>} </li>))}
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