Σε μια εφαρμογή React, μεταβιβάζω αυτόν τον πίνακα αντικειμένων σε ένα στοιχείο:
const flashcards = [
{
"back": "bbb1",
"front": "fff1",
"id": 21
},
{
"back": "bbb2",
"front": "fff2",
"id": 22
},
{
"back": "bbb3",
"front": "fff3",
"id": 20
}
];
Στο στοιχείο, όταν αντιστοιχίζω μέσω του πίνακα, γιατί χρειάζεται να έχω έναν τελεστή διασποράς για να στείλω μεμονωμένα στοιχεία από τον πίνακα στο επόμενο χαμηλότερο στοιχείο (Flashcard), π.χ. σαν αυτό:
render() {
return (
<div className="app">
<div>
{this.props.flashcards.map(flashcard =>
<Flashcard {...flashcard} key={flashcard.id} />
)}
</div>
</div>
);
}
Αυτό φαίνεται περιττό, καθώς όταν χρησιμοποιώ χάρτη σε απλή JavaScript στον ίδιο πίνακα, δεν χρειάζομαι τον τελεστή spread, π.χ.
flashcards.map(flashcard => console.log(flashcard.front));
<span v-html="buildNiceCategoryHeader(flashcard)"></span>
ή@click="flipFlashcard(flashcard)"
. Δεν είναι δυνατό αυτό στο React/JSX; 17.08.2020flashcard
αντικείμενο ---›<Flashcard flashcard={flashcard} />
. Το αντικείμενοprops
θα έχει τώρα μια ιδιότητα με το όνομαflashcard
της οποίας η τιμή θα είναι αυτό το αντικείμενοflashcard
. Η διαφορά μεταξύ{...flashcard}
καιflashcard={flashcard}
είναι ότι η πρώτη θα προσθέσει κάθε ιδιότητα του αντικειμένουflashcard
στο αντικείμενοprops
ενώ ηflashcard={flashcard}
θα προσθέσει μια ιδιότηταflashcard
στο αντικείμενοprops
. 17.08.2020