Beim Rendern einer Liste von Elementen verwendet React den Index jedes Elements als Standardschlüssel, wenn keiner angegeben ist.Warum verwendet React den Objektverweis nicht als Schlüssel?
return <div>
{this.props.shows.map(show => <ShowComp title = {show.title}/>)}
</div>;
Aber warum nicht reagiert das Objekt JS Referenz verwenden jedes Elements statt? Scheint mir wie eine viel sicherere Option, da es nicht zu einem erneuten Rendering der Elemente führen würde, wenn sich die Reihenfolge der Listen ändert (im Gegensatz zum Index-Ansatz).
Ich bin relativ neu zu reagieren, also bin ich sicher, dass es einen Grund gibt.
In Angular, ngFor
(die eine Liste von Elementen, ähnlich dem Abbildungsobjekt rendert Elemente zu reagieren), hat es auch eine trackBy
Konfigurationsoption (welches das Äquivalent von key
in React ist). Wenn es jedoch nicht geliefert wird, verwendet es die Objektreferenzen als eine Kennung, die natürlicher erscheint.
Danke für die Antwort! Ich habe den "eindeutigen Geschwister-Teil", aber ich sehe immer noch nicht, warum ich den Objektverweis nicht als Schlüssel verwenden kann und warum ich einen String oder eine Zahl verwenden muss. Objektreferenzen sind für jedes Objekt vererbt eindeutig. Vielleicht frage ich nur die falsche Frage? –