繁体   English   中英

使用 classNames 和 Tailwind 激活时渲染特定的 className

[英]Render a specific className when active with classNames and Tailwind

我正在使用Tailwinds CSSclassNames包。

我正在渲染 2 个div并且我想检查其中一个是否有active类,然后为其设置特定的背景颜色 className bg-[#000]

  • 我尝试使用'bg-[#000]': 'active' check 但这只是在所有元素上插入背景颜色。

我们如何使用TailwindclassNames为活动元素设置特定样式?

谢谢!

截图:

这是标签的屏幕截图,第一个当前处于活动状态。 但是第二个不活跃的也有bg-[#000]类。

在此处输入图像描述

代码:

list.map((page, index) => {
  return ( 
  <div 
    key = {index}
    onClick = {() => setCurrentListIdx(index)}
    className = {
      classNames('bullets__item m-1.5 h-2 w-2 cursor-pointer rounded-full bg-[#e0e0e0]', 
      {
        active: currentListIdx === +index,
        'bg-[#000]': 'active',
       }
      )}
    ></div>
  )
})

在条件'bg-[#000]': 'active'中,您传递的是字符串'active'而不是要评估的变量或表达式。 这将返回true ,因为 JS 字符串是真实的,因此总是添加类。 classNames实用程序似乎不允许以这种方式检查其条件对象中当前应用的类名。

您也可以对两个类名使用相同的条件: currentListIdx === +index ,因此在满足此条件时将添加两个类。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM