Μοναδικά κλειδιά μέσω id στο React
Στον παραπάνω κώδικα στο χαρακτηριστικό key
προσθέταμε τον τακτικό αριθμό του στοιχείου στον
πίνακα. Στην πραγματικότητα, αυτή η πρακτική είναι
κακή και θα πρέπει να χρησιμοποιείται μόνο σε
ακραίες περιπτώσεις.
Το γεγονός είναι ότι κατά τη διάταξη ενός πίνακα, τα στοιχεία θα αποκτήσουν διαφορετικά κλειδιά και το React δεν θα μπορεί να παρακολουθεί σωστά τη σχέση μεταξύ των στοιχείων του πίνακα και των αντίστοιχων ετικετών.
Μια καλύτερη πρακτική θα ήταν να προσθέσουμε σε κάθε προϊόν μια μοναδική ταυτότητα, η οποία θα χρησιμοποιείται ως κλειδί.
Ας προσθέσουμε στον πίνακά μας σε κάθε προϊόν
την ιδιότητα id με τον αριθμό του προϊόντος
μας:
const prods = [
{id: 1, name: 'product1', cost: 100},
{id: 2, name: 'product2', cost: 200},
{id: 3, name: 'product3', cost: 300},
];
Τώρα ως κλειδί χρησιμοποιούμε αυτό το id:
function 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>;
}
Τροποποιήστε την προηγούμενη εργασία, προσθέτοντας
στον πίνακα id και χρησιμοποιώντας τα ως
τιμές του χαρακτηριστικού key.