関数の引数でTailwind CSSを使ったclass名を変更しても反映されない時

13174 ワード

はじめに

例えばReactで次のように書いてみるとする。

function Test() {
  return (
    <div>
      <h1 className={`text-3xl text-red-400 font-bold underline`}>
        Hello World!
      </h1>
    </div>
  )
}

この関数に引数を設けてテキストの色を変えれるようにしたい。

function Test({ textColor }) {
  return (
    <div>
      <h1 className={`text-3xl text-${textColor}-400 font-bold underline`}>
        Hello World!
      </h1>
    </div>
  )
}
<Test textColor="red" />

ところがこれだとテキストの色が反映されない。

なぜこうなるのか

公式のドキュメントに書いてあった。