React入門 ・ Chapter 19

ToDoアプリを作る②——完了と削除

コード演習 ・ 冒頭を無料公開中

第1形態のToDoは、足すことしかできません。この章で「完了にする」「削除する」を足して、機能を完成させます。削除はチャプター17の型そのまま。新しい挑戦は完了の切り替え——「配列の中の、1件だけを変える」です。

削除——filterの型、再演

先に楽な方を片付けます。idで指名して、それ以外を残す。チャプター17の削除の、文字列がオブジェクトに変わっただけの形です。

const handleDelete = (id: number) => {
  setTodos(todos.filter((todo) => todo.id !== id));
};

呼び出し側も前章の型の通り、アロー関数で包んで引数を渡します。

<button onClick={() => handleDelete(todo.id)}>削除</button>

完了の切り替え——「1件だけ差し替えた新配列」を作る

さて本題です。「牛乳を買う」をタップしたら、そのdoneをtrueにしたい。もちろん直接書き換えはダメです(壊さない原則)。では、どう考えるか。

発想はこうです——「全員をチェックして、該当の1件だけ差し替えた、新しい配列」を作る。全員に同じ処理をして新配列を作る道具、持っていますよね。mapです。

コード演習はブラウザ上でそのまま実行できます

本文の残り、エディタ・テスト実行・解答コード・ヒントはプラン加入後に利用できます。

料金プランを見る