ReactでのIDによるユニークキー
上記のコードでは、属性keyに
配列内の要素のインデックス番号を
追加していました。実際には、この手法は
望ましくなく、やむを得ない場合にのみ
使用すべきです。
その理由は、配列をソートすると 要素のキーが変わってしまい、Reactが 配列の要素と対応するタグの関連を 正しく追跡できなくなるためです。
より良い手法は、各製品に一意の識別子を 追加し、それをキーとして使用することです。
私たちの配列で、各製品に製品番号を表す
プロパティidを追加しましょう:
const prods = [
{id: 1, name: 'product1', cost: 100},
{id: 2, name: 'product2', cost: 200},
{id: 3, name: 'product3', cost: 300},
];
次に、キーとしてこのidを使用します:
function App() {
const res = prods.map(function(item) {
return <p key={item.id}>
<span>{item.name}</span>:
<span>{item.cost}</span>
</p>;
});
return <div>
{res}
</div>;
}
前の課題を修正し、
配列にidを追加して、
属性keyの値として
使用してください。