tailwind css 组件之间不工作

tailwind css not working between components

所以我创建了一个按钮组件,我在其中传递了按钮外观的道具。但是当我尝试使用道具时,道具不起作用。我不认为这是我的代码的问题,因为如果您首先在 btn 文件中手动使用颜色,编译它,然后将它们用作道具,它仅适用于该颜色

src/Button.js

import React from "react";

function Button({ text, img, textColor, bg, hoverBg }) {
  console.log(hoverBg);
  return (
    <button
      className={`flex-center h-10 w-full ring-1 ring-gray-300 rounded-full bg-${bg} hover:bg-${hoverBg}`}
    >
      <img src={img} alt="button-img" className="h-6" />
      <h1 className={`font-bold text-${textColor}`}>{text}</h1>
    </button>
  );
}

export default Button;

src/pages/Register.page.js(我使用按钮合成的页面)

import React from "react";

function Button({ text, img, textColor, bg, hoverBg }) {
  console.log(hoverBg);
  return (
    <button
      className={`flex-center h-10 w-full ring-1 ring-gray-300 rounded-full bg-${bg} hover:bg-${hoverBg}`}
    >
      <img src={img} alt="button-img" className="h-6" />
      <h1 className={`font-bold text-${textColor}`}>{text}</h1>
    </button>
  );
}

export default Button;

它的工作风格:

<div style={{ backgroundImage: classBackgroundImage}}>
      </div> 

TailwindCSS 不允许您动态生成 classes。因此,当您使用以下内容生成 class... text-${textColor} 作为字符串时。

…TailwindCSS 不会将其作为有效的 TailwindCSS class 选择,因此不会产生必要的 CSS.

您必须 return 完整的字符串,而不是仅来自道具的颜色。就像在你的道具中一样,如果 textColor 是 returning red-600 那么你必须将它变成 return 字符串,例如 text-red-600.

另外你可以在这里看到我的回答