Unikāli atslēgas ar id React
Iepriekš minētajā kodā atribūtā key
mēs pievienojām elementa kārtas numuru
masīvā. Patiesībā šāda prakse ir
slikta, un to vajadzētu izmantot tikai ārkārtējos
gadījumos.
Lieta ir tāda, ka, kārtojot masīvu, elementiem būs citas atslēgas, un React nevarēs pareizi izsekot saiknei starp masīva elementiem un atbilstošajiem tagiem.
Labāka prakse būtu katram produktam pievienot unikālu identifikatoru, kas tiks izmantots kā atslēga.
Pievienosim mūsu masīvā katram produktam
īpašību id ar sava produkta
numuru:
jsxconst prods = [
{id: 1, name: 'product1', cost: 100},
{id: 2, name: 'product2', cost: 200},
{id: 3, name: 'product3', cost: 300},
];
Tagad kā atslēgu izmantosim šo 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
Modificējiet iepriekšējo uzdevumu, pievienojot
masīvam id un izmantojot tos kā
atribūta key vērtības.