Յունիկալ բանալիներ 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 ատրիբուտի արժեքներ: