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

1.3K
Vistas
Cómo usar clsx en React

Estoy tratando de entender algunos usos de clsx al asignar nombres de clase a un componente en React.

El constructo

 className={clsx(classes.menuButton, open && classes.hide)}

es lo suficientemente claro. Aplica 'classes.menuButton' y también aplica 'classes.hide' si el valor del booleano 'open' es verdadero.

Mi pregunta se relaciona con este segundo ejemplo:

 className={clsx(classes.appBar, {[classes.appBarShift]: open })}

Esto aplicará 'classes.appBar'. Pero, ¿cuál es el significado del segundo parámetro?

over 4 years ago · Santiago Trujillo
3 Respuestas
Responde la pregunta

0

clsx generalmente se usa para aplicar condicionalmente un className dado

Esta sintaxis significa que alguna clase solo se aplicará si una condición dada se evalúa como true

 const menuStyle = clsx({ [classes.root] : true, //always applies [classes.menuOpen] : open //only when open === true })

En este ejemplo [classes.menuOpen] (que se evaluará como algo como randomclassName123 ) solo se aplicará si está open === true


clsx básicamente genera una interpolación de string . Así que no tienes que usarlo necesariamente, aunque es una práctica común.

Hay muchas sintaxis admitidas que puede consultar en los documentos oficiales

En vez de

 <div className={`${classes.foo} ${classes.bar} ${classes.baz}`} />

Puedes usarlo así

 const { foo, bar, baz } = classes const style = clsx(foo, bar, baz) return <div className={style} />
over 4 years ago · Santiago Trujillo Denunciar

0

Mucha gente ya lo ha explicado bastante bien. Todavía quería agregar un ejemplo que contenga className. En el ejemplo, puede ver diferentes clases, aplicadas si una condición dada se evalúa como verdadera. En el ejemplo, puede aplicar una clase con un valor booleano, una variable booleana o una cadena comparada (si coincide, devuelve verdadero). La clase classes.drawer siempre se aplica y no depende de una condición.

 className={clsx(classes.drawer, { // classes.drawer is applied always [classes.drawerOpen]: true, // classes.drawerOpen is applied always, bool = true [classes.drawerClose]: !open, // you can also use boolean variable [classes.drawerRed]: colorVar === 'red', // you can also use string variable })}
over 4 years ago · Santiago Trujillo Denunciar

0

classes.appBarShift se aplicará solo si open se evalúa como true . Si la matriz tiene más clases, todas se aplicarán si open se evalúa como true

over 4 years ago · Santiago Trujillo 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