此问题已在此处有答案:
Why can't I pass variable as a className to tailwind-css?(1个答案)
4天前关闭。
假设每个按钮的主颜色是bg-gray-600
,我想将其更改为bg-indigo-600
。我尝试使用模板文字,但它对UI没有影响。
const mycomponent = () => {
const [color, setColor] = useState('blue');
return (
<>
<button
onClick={() => {
setColor('gray');
}}
>
Change color to gray
</button>{' '}
<div className={`bg-${color}-600 p-2`}> Hello world </div>{' '}
</>
);
};
字符串
上面的代码确实改变了类,但是颜色没有改变,但是当应用类bg-gray-600
时,它没有模板字符串,然后它就工作了,我错过了什么?
1条答案
按热度按时间emeijp431#
根据文件:
Tailwind如何提取类名的最重要的含义是,它只会在源文件中找到作为完整的未断开字符串存在的类。
如果你使用字符串插值或将部分类名连接在一起,Tailwind将找不到它们,因此不会生成相应的CSS:
不要动态构造类名
字符串
在上面的例子中,字符串
text-red-600
和text-green-600
不存在,所以Tailwind不会生成这些类。相反,请确保您使用的任何类名都完整存在:始终使用完整的类名
型
您可以考虑:
型
safelist
:型