reactjs / reactjs/react.dev

Missing early return in set function example?

Offen
#6,336 1 Kommentar 0 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

Regarding this example

import { useState } from 'react';

export default function CountLabel({ count }) {
  const [prevCount, setPrevCount] = useState(count);
  const [trend, setTrend] = useState(null);
  if (prevCount !== count) {
    setPrevCount(count);
    setTrend(count > prevCount ? 'increasing' : 'decreasing');
//    return; here?
  }
  return (
    <>
      <h1>{count}</h1>
      {trend && <p>The count is {trend}</p>}
    </>
  );
}

It seems to me that the example should include an early return statement after setTrend so React doesn't have to compute a tree that might be discarded immediately because the trend is changed from null to increasing / decreasing

first render

return (
    <>
      <h1>{count}</h1>
    </>
  );

immediate second pass

return (
    <>
      <h1>{count}</h1>
      <p>The count is increasing</p>
    </>
  );

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 das verlinkte useState-Dokumentationsbeispiel und vergleiche sein aktuelles Verhalten mit der vorgeschlagenen frühen Rückgabe nach setTrend. Prüfe die umgebende Erklärung und die Beispielausgabe, bevor du entscheidest, ob das Beispiel überarbeitet werden muss; erledigt ist die Aufgabe, wenn das Beispiel und seine Erklärung das vereinbarte Rendering-Verhalten korrekt wiedergeben.

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
Größtenteils klar
Anfängerfreundlichkeit
48/100

Neue Issues direkt in Ihr Postfach

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