Уникальные ключи через 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.