Saya punya function komponen bernama Users
:
function Users() {
const users = [
{ kelompok: 1, nama: 'Budi' },
{ kelompok: 1, nama: 'angga' },
];
return (
<ol>
{users.map((user) => (
<li key={user.kelompok}>{user.nama}</li>
))}
</ol>
);
}
Ketika saya jalankan muncul pesan kesalahan ini di browser:
Warning: Encountered two children with the same key, `1`. Keys should be unique so that components maintain their identity across updates. Non-unique keys may cause children to be duplicated and/or omitted — the behavior is unsupported and could change in a future version.
at ol
at Users
at div
at App
Gimana cara mengatasinya ya?
Error ini muncul apabila kamu memiliki child hasil dari mapping, tetapi memiliki key value yang sama persis, untuk mengatasinya bisa dengan mendefinisikan key value berdasarkan unique id, jika didalam kasus ini, kamu dapat merubah key menjadi index dari array
return (
<ol>
// Tambahkan parameter i di map return callback, lalu assign i ke key
{users.map((user, i) => (
<li key={i}>{user.nama}</li>
))}
</ol>
);
Oh, berarti pakai user.kelompok
juga bisa ya asalkan unik, saya coba ubah pakai angka yang beda berfungsi. Makasih.
Yapp bisa, intinya key harus memiliki nilai yang unik, jangan sampai ada yang sama
Kamu tau jawabannya?
Ayo bergabung bersama lebih dari 200.000 pengguna lainnya!