Massivdən komponentlərə
map hər məlumat elementini JSX elementinə çevirir. React eyni valideyndəki elementlərin kimliyini key vasitəsilə izləyir. Məlumatdan gələn sabit, unikal ID seç; render zamanı təsadüfi key yaratma.
import { useState } from 'react';
export default function Employees({ employees }) {
const [query, setQuery] = useState('');
const visible = employees.filter(employee =>
employee.name.toLocaleLowerCase('az').includes(query.toLocaleLowerCase('az'))
);
return <section>
<label htmlFor="search">Ad üzrə axtar</label>
<input id="search" value={query} onChange={event => setQuery(event.target.value)} />
{visible.length ? <ul>{visible.map(employee =>
<li key={employee.id}>{employee.name} — {employee.department}</li>
)}</ul> : <p>Uyğun işçi tapılmadı.</p>}
</section>;
}
Filtri törəmə məlumat kimi hesabla
Görünən siyahını query və ilkin məlumatdan hesablamaq olursa ayrıca state-də saxlayıb sinxronlaşdırmağa ehtiyac yoxdur. Əks halda iki həqiqət mənbəyi yarana bilər. Eyni ad daşıyan işçilər mümkündür; buna görə ad hər zaman uyğun key deyil.
Element əlavə/silmə və sıralama varsa indeks key-i elementin yerli state-ni səhv kimliyə bağlaya bilər. Key map-in birbaşa qaytardığı elementdə olmalıdır. Ayrıca komponentə lazım olan ID-ni adi prop kimi də ötür; key onun props obyektinə daxil olmur.