Reactのリストとキーを完全解説!初心者でもわかる動的なリストの追加・削除
生徒
「Reactでリストを表示できるようになったんですが、あとから追加したり消したりもできますか?」
先生
「できます。Reactでは画面の表示を、データの変化に合わせて動的に変えられます。」
生徒
「動的っていうのが、まだよく分からないです…」
先生
「ボタンを押したら増える、削除したら消える、そんな仕組みを一緒に作ってみましょう。」
1. 動的にリストを操作するとは
動的にリストを操作するとは、画面を読み直さなくても、 データの追加や削除に合わせて表示が変わることを指します。
現実の例で言うと、紙のメモに書いた買い物リストを、 鉛筆で書き足したり消したりするようなものです。
Reactでは、この仕組みを「状態」という考え方で実現します。 状態とは、今の画面の元になる情報のことです。
2. useStateでリストを管理する基本
Reactでデータを変化させるときは、useStateという仕組みを使います。 useStateは「今の値」と「変更するための道具」をセットで持ちます。
import React, { useState } from "react";
function App() {
const [items, setItems] = useState(["りんご", "みかん"]);
return (
<ul>
{items.map((item, index) => (
<li key={index}>{item}</li>
))}
</ul>
);
}
export default App;
このitemsがリストの元になります。 この中身を変えると、画面の表示も一緒に変わります。
3. リストに項目を追加する方法
次は、ボタンを押したらリストに項目を追加する方法です。 新しいデータを、今の配列に足してあげます。
import React, { useState } from "react";
function App() {
const [items, setItems] = useState(["りんご", "みかん"]);
const addItem = () => {
setItems([...items, "バナナ"]);
};
return (
<div>
<button onClick={addItem}>追加する</button>
<ul>
{items.map((item, index) => (
<li key={index}>{item}</li>
))}
</ul>
</div>
);
}
export default App;
「...」は、今あるデータをそのままコピーするための書き方です。 元のリストを壊さずに、新しいリストを作るために使います。
4. リストから項目を削除する方法
次に、リストから特定の項目を削除してみましょう。 filterという仕組みを使うと、残したいものだけを選べます。
import React, { useState } from "react";
function App() {
const [items, setItems] = useState(["りんご", "みかん", "バナナ"]);
const deleteItem = (target) => {
setItems(items.filter(item => item !== target));
};
return (
<ul>
{items.map((item, index) => (
<li key={index}>
{item}
<button onClick={() => deleteItem(item)}>削除</button>
</li>
))}
</ul>
);
}
export default App;
filterは「条件に合うものだけを残す」仕組みです。 消したいもの以外を集め直すことで、結果的に削除できます。
5. keyが重要な理由
リストを扱うときは、必ずkeyを指定します。 keyは、Reactが「どの項目がどれか」を見分けるための目印です。
例えるなら、同じ名前の人がいても、 番号があれば区別できるようなものです。
動的に追加や削除をする場合は、 できるだけ番号や識別用の値をkeyに使うと安心です。
6. 初心者が混乱しやすいポイント
よくある間違いは、配列を直接書き換えてしまうことです。 Reactでは、新しい配列を作って状態を更新します。
また、追加や削除の処理は「データをどう変えるか」だけを考え、 表示はmapに任せると、頭の中が整理しやすくなります。
7. 動的リスト操作の考え方のコツ
動的なリスト操作は、難しい魔法ではありません。 「状態が変わると画面が変わる」という一つのルールだけです。
まずは追加、次に削除と、一つずつ試してみることで、 Reactの仕組みが自然と身についていきます。
紙のリストを消しゴムで消したり書き足したりする感覚で、 データを操作していきましょう。