我试图了解 clsx 在将类名分配给 React 中的组件时的一些用途。
构造
className={clsx(classes.menuButton, open && classes.hide)}
很清楚。它应用 ‘classes.menuButton’,如果布尔值 ‘open’ 的值为真,也应用 ‘classes.hide’。
我的问题与第二个示例有关:
className={clsx(classes.appBar, {[classes.appBarShift]: open })}
这将应用“classes.appBar”。但是第二个参数是什么意思呢?
原文由 millport 发布,翻译遵循 CC BY-SA 4.0 许可协议
clsx
一般用于有条件地应用给定的className
此语法意味着仅当给定条件评估为
true
时才会应用某些类在此示例中
[classes.menuOpen]
(将评估为randomclassName123
)仅在open === true
时应用clsx
基本上输出一个 字符串插值。因此,您不必一定要使用它。您可以在官方 文档 中查看许多受支持的语法
代替
你可以像这样使用它