Reactで変数からのデータをstyle属性に挿入する

前のレッスンでは、オブジェクトを 属性styleに直接書きました。また、 変数からデータをこのオブジェクトに 挿入することもできます。

CSSスタイルのないReactコンポーネントを 取り上げましょう:

App.jsfunction App() {
  return (
    <div>
      <p>text</p>
      <p>text</p>
      <p>text</p>
    </div>
  );
}

これから変数を作成し、 それらにCSSプロパティの値を 代入します。 まずdivのスタイルから 順番に始めましょう。

コンポーネントファイル内で、 命令returnの前に変数 wd1を作成し、値 '200px'を代入します:

App.jsconst wd1 = '200px';

同様に、divのすべてのプロパティ値のための 変数を作成します:

App.jsconst wd1 = '200px';
const br1 = '2px solid brown';
const pd1 = '10px';
const ta1 = 'center';

次に、最初の段落のための 変数を追加します:

App.jsconst co1 = 'orangered';
const fw1 = 'bold';

2番目の段落のため:

App.jsconst fs1 = 'italic';
const co2 = 'brown';

そして最後に、最後の段落のためです。 ここでは三つではなく二つの変数が 必要です。 繰り返す意味はありません、 値boldは最初の段落のために すでにあるのですから:

App.jsconst bco1 = 'orange';
const co3 = 'white';

さて、スタイル値を持つ変数を 代入しましょう。 最初の段落から始めます。 オブジェクト内の値の代わりに 変数co1とfw1を 挿入します:

App.js<p style = {{ color: co1, fontWeight: fw1 }}>
  text
</p>

同様の方法で残りのタグも 処理します。

結果として、コンポーネントコードは 以下のようになります:

App.jsfunction App() {
  const wd1 = '200px';
  const br1 = '2px solid brown';
  const pd1 = '10px';
  const ta1 = 'center';

  const co1 = 'orangered';
  const fw1 = 'bold';

  const fs1 = 'italic';
  const co2 = 'brown';
  
  const bco1 = 'orange';
  const co3 = 'white';

  return (
    <div style = {{
      width: wd1,
      border: br1,
      padding: pd1,
      textAlign: ta1 }}>
      <p style = {{ color: co1, fontWeight: fw1 }}>
        text
      </p>
      <p style = {{ fontStyle: fs1, color: co2 }}>
        text
      </p>
      <p style = {{ 
        backgroundColor: bco1,
        fontWeight: fw1,
        color: co3 }}>
        text
      </p>
    </div>
  );
}
Задание 1

前回のレッスンの課題の解答コードを修正して、 CSSプロパティの値が変数に保存されるようにしてください。