Унікальныя ключы праз id у React

У прыведзеным вышэй кодзе ў атрыбут key мы дадавалі парадкавы нумар элемента ў масіве. На самай справе такая практыка з'яўляецца дрэннай і ёй варба карыстацца толькі ў крайнім выпадку.

Справа ў тым, што пры сартаванні масіва ў элементаў стануць іншыя ключы і React не зможа правільна адсочваць сувязь паміж элементамі масіва і адпаведнымі тэгамі.

Больш добрай практыкай будзе дадаць кожнаму прадукту ўнікальны ідэнтыфікатар, які і будзе выкарыстоўвацца ў якасці ключа.

Давайце ў нашым масіве кожнаму прадукту дададзім уласцівасць id з нумарам нашага прадукта:

jsxconst prods = [
  {id: 1, name: 'product1', cost: 100},
  {id: 2, name: 'product2', cost: 200},
  {id: 3, name: 'product3', cost: 300},
];

Цяпер у якасці ключа выкарыстоўваем гэты id:

jsxfunction 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>;
}
Задание 1

Мадыфікуйце папярэднюю задачу, дадаўшы ў масіў id і выкарыстаўшы іх у якасці значэнняў атрыбута key.