Puede que se de el caso de que encuentres alguna incompatibilidad en tu código o proyecto, recuerda probar siempre en un ambiente de testing antes añadir el código al proyecto final.
clsx
se utiliza generalmente para aplicar condicionalmente un determinado className
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á a algo así como randomclassName123
) sólo se aplicará si open === true
clsx
básicamente realiza un string
interpolación. Por lo tanto, no tiene que usarlo necesariamente para aplicar clases condicionalmente.
Hay muchas sintaxis admitidas que puede consultar en los documentos oficiales
En lugar de
Puedes usarlo así
const foo, bar, baz = classes
const style = clsx(foo, bar, baz)
return
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 true. En el ejemplo, puede aplicar una clase con un valor booleano, una variable booleana o una comparación string (Si coincide, devolver true). 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
)
classes.appBarShift
se aplicará sólo si open
evalúa a true
. Si el array tiene más clases todas se aplicarán si open
evalúa a true
Si piensas que te ha resultado de provecho este artículo, sería de mucha ayuda si lo compartes con el resto entusiastas de la programación y nos ayudes a extender nuestro contenido.