Egyedi kulcsok tömb elemeiben a Reactban

Az előző példában a bekezdéseinket egy ciklusban hoztuk létre, így:

jsxconst res = arr.map(function(item) {
  return <p>{item}</p>;
});

Ez működni fog, azonban, ha belenézünk a konzolba - egy hibát fogunk látni: Warning: Each child in an array or iterator should have a unique "key" prop. Ebben az esetben a React megköveteli, hogy minden ciklusból származó elemnek adjunk egy egyedi számot, hogy a React számára könnyebb legyen ezekkel az elemekkel dolgozni a jövőben.

Ezt a számot a key attribútum segítségével adjuk hozzá. Ebben az esetben a számként vehetjük az elem sorszámát a tömbben. Esetünkben ez a szám a index változóban tárolódik, ami azt jelenti, hogy a javított sor így fog kinézni:

jsxconst res = arr.map(function(item, index) {
  return <p key={index}>{item}</p>;
});

Futtassuk - a hiba eltűnik a konzolból:

jsxfunction App() {
  const arr = [1, 2, 3, 4, 5];
  
  const res = arr.map(function(item, index) {
    return <p key={index}>{item}</p>;
  });
  
  return <div>
    {res}
  </div>;
}

Még egyszer: ez a key attribútum szolgálati jelentőségű a React számára, mélyebben megérted ezt a pontot a következő leckékben. Egyelőre egyszerűen tudja: ha ilyen hibát lát - adjon hozzá egy key attribútumot minden egyes elem számára egyedi értékkel, és a probléma eltűnik.

A key kulcsnak csak ezen cikluson belül kell egyedinek lennie, egy másik ciklusban a key értékek egyezhetnek egy másik ciklusból származó értékekkel.

Задание 1

Módosítsa az előző feladat megoldását a leírtaknak megfelelően.