Унікальныя ключы праз id у React
У прыведзеным вышэй кодзе ў атрыбут 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.