reactjs / reactjs/react.dev

Explain index as key can be ok

Offen
#5,540 0 Kommentare 4 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

Vorherrschende Sprache
JavaScript
Sterne
11.8k
Forks
7.9k
Ø Merge
1 T. 11 Std.
Gemergte PRs (30 T.)
11

Beschreibung

The pitfall warning on https://beta.reactjs.org/learn/rendering-lists states that using index or random for keys is bad. However, this is the only mention of using indexes of keys. I think it should state that using indexes is bad, but it should also be clear that using random values much worse.

The problem is using index as key is a well known anti-pattern in the React world. People come up with much worse solutions, e.g. use a random key, to get rid of ESLint warnings.

Also there are legitimate use cases for an index as a key, for example when rendering a static list of data. I think this should be acknowledged in the Where to get your key section.

Beitragsleitfaden

Beitragsleitfaden öffnen

Erste Schritte

  1. Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
  3. Forke das Repository und arbeite in einem Branch.
  4. Öffne einen Pull Request, der die Issue-Nummer nennt.

Rechercherichtung

Öffne die Seite Rendering Lists unter https://beta.reactjs.org/learn/rendering-lists und lies den Warnhinweis zu Fallstricken sowie den Abschnitt „Where to get your key“. Aktualisiere die Erklärung so, dass sie zwischen Index-Keys und zufälligen Keys unterscheidet und statische Listen als legitimen Fall für Index-Keys anerkennt; fertig ist es, wenn die Anleitung an beiden Stellen klar und konsistent ist.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
javascript, react
Bereich
documentation
Issue-Typ
Dokumentation
Schwierigkeit
2/5
Geschätzter Aufwand
1-3 Stunden
Aktivitätsstatus
Veraltet
Klarheit
Klar beschrieben
Anfängerfreundlichkeit
58/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.