Reactにおける配列のリアクティブ操作
次に、配列要素をリアクティブに操作する方法を学びましょう。
そのために、各 li にイベントハンドラを設定し、
その中でこの li の配列内のインデックスを
パラメータとして渡します:
function App() {
const [notes, setNotes] = useState([1, 2, 3, 4, 5]);
const result = notes.map((note, index) => {
return <li key={index} onClick={() => doSmth(index)}>
{note}
</li>;
});
return <div>
<ul>
{result}
</ul>
</div>;
}
この関数内で、配列要素に対して任意の操作を実行できます:
function App() {
...
function doSmth(index) {
let copy = Object.assign([], notes);
copy[index] += '!'; // 要素に対して何か処理を行う
setNotes(copy);
}
}
数値の配列が与えられます。
これを ul リストとして出力してください。
任意の li をクリックしたら、その数値を2乗します。
各 li の末尾にボタンを作成し、
クリックするとその li がリストから削除されるようにしてください。
入力欄が与えられます。
任意の li をクリックすると、
その li のテキストが入力欄に入力されるようにしてください。
前のタスクを修正し、
入力欄からフォーカスが外れた時に変更されたテキストが
対応する li に反映されるようにしてください。
ボタンが与えられます。
このボタンをクリックすると、li の順序が逆になります。