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

466
Vistas
Cómo usar clsx en componentes anidados en React

Estoy usando clsx en una aplicación React y tengo un problema sobre cómo usarlo cuando hay asignaciones y componentes anidados.

Por ejemplo:

 return ( <div> <button onClick={doSomething}>{isOpened ? <Component1 /> : <Component2 />}</button> <div className={clsx(containerClasses)}> {myData.map((item, index) => <OuterComponent as='div' key={item.name}> {({ open }) => <> <InnerComponent className={}// how to compute this value? >

Arriba tenemos un JSX devuelto, un elemento div externo, un valor isOpened que proviene del estado, por lo que tenemos acceso a él en todas partes. Esto significa que podemos implementar las siguientes clases de containerClasses :

 const containerClasses = { 'class1 ': true, 'class2': isOpened, 'class3': !isOpened };

Todo bien hasta aquí.

Pero como puede ver, hay myData.map(...) que itera a través de una matriz. Aquí, necesitaría calcular innerClasses en función del valor de open . Pero este valor es accesible justo dentro del bucle, no fuera del retorno y dentro de la función.

¿Hay alguna manera de resolver este problema con clsx?

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

0

const getClasses= (open) => { return clsx({ [classes.class1]: open, // desired classname and condition }) }
 <InnerComponent className={getClasses(open)} //call a method here >
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