本文へスキップ
BecomeCoder

Reactコース · 第3章 stateとイベント · レッスン10

条件で表示を変える

ブラウザで完結

導入

「ログイン中なら名前を、そうでなければログインボタンを」のように、条件によって表示を切り替えるのはよくある処理です。JSX の中では三項演算子&& を使います。

説明

isOn という state の真偽で表示を切り替えます。

function App() {
  const [isOn, setIsOn] = React.useState(false);
  return (
    <div style={{ fontFamily: "system-ui" }}>
      <button onClick={() => setIsOn(!isOn)}>
        スイッチ: {isOn ? "ON" : "OFF"}
      </button>
      {isOn ? (
        <p style={{ color: "green" }}>点灯しています</p>
      ) : (
        <p style={{ color: "gray" }}>消えています</p>
      )}
      {isOn && <p>(ONのときだけ、この行が見えます)</p>}
    </div>
  );
}
  • {条件 ? A : B} … 条件が真なら A、偽なら B を表示します。
  • {条件 && A} … 条件が真のときだけ A を表示(偽なら何も出ない)。
  • setIsOn(!isOn) … 現在の値を反転させてトグルします。

やってみよう

ボタンの背景色を、ON のとき緑・OFF のとき灰色に切り替えてみましょう(style={{ background: isOn ? "#dcfce7" : "#f1f5f9" }})。

実際に動かしてみよう

下のエディタにReactのコードを書くと、右側のプレビューにその場で描画されます。`function App() { ... }` を定義すると自動で表示されます(React・useState などは React.useState の形で使えます)。本文の例を打ち込んだり書き換えたりして、表示の変化を確かめながら進めましょう。

React — ブラウザ内で実行

JSXをその場で変換して描画する学習用React環境(React18 + Babel・同梱)を読み込みます。
スクロールして表示された時点でも自動で読み込まれます。