投稿

[今さら始める React マスター #6] 条件付きレンダリングとリスト表示

Reactで条件に応じて表示を切り替える方法と、配列をmapでリスト表示する基本を説明します。

[今さら始める React マスター #6] 条件付きレンダリングとリスト表示

条件付きレンダリングとは?

条件付きレンダリングは、状態や条件に応じて表示する内容を変えることです。

ログイン済みならユーザー名を表示し、未ログインならログインボタンを表示する、といった場面で使います。

if文で分ける

1
2
3
4
5
6
7
function Greeting({ isLoggedIn }) {
  if (isLoggedIn) {
    return <p>Welcome back!</p>;
  }

  return <p>Please log in.</p>;
}

分岐が大きい場合は、普通の if 文が読みやすいです。

三項演算子

短い分岐なら三項演算子も使えます。

1
{isLoggedIn ? <p>Welcome</p> : <p>Login required</p>}

&&で表示する

条件が真のときだけ表示したい場合は && が便利です。

1
{hasError && <p className="error">エラーがあります</p>}

リスト表示

配列を画面に表示するときは map() を使います。

1
2
3
4
5
6
7
8
9
10
11
const todos = ["Learn React", "Build App", "Deploy"];

function TodoList() {
  return (
    <ul>
      {todos.map((todo) => (
        <li key={todo}>{todo}</li>
      ))}
    </ul>
  );
}

keyの役割

リストを表示するとき、Reactは各要素を区別するために key を使います。安定したIDがある場合は、それを使うのが理想です。

1
2
3
{users.map((user) => (
  <li key={user.id}>{user.name}</li>
))}

学習のポイント

条件付きレンダリングとリスト表示を使えるようになると、Reactで動的な画面を作れるようになります。Todoリストや検索結果一覧のような小さなUIで練習してみましょう。

この投稿は投稿者によって CC BY 4.0 の下でライセンスされています。