Warum React Hook useState const verwendet und nicht let

Lesezeit: 2 Minuten

Benutzer-Avatar
Nacho

Die Standardmethode zur Verwendung eines React useState-Hooks ist die folgende:

const [count, setCount] = useState(0);

Dies jedoch const count Die Variable wird eindeutig einem anderen primitiven Wert zugewiesen.

Warum ist die Variable dann nicht definiert als let count?

  • Wenn Sie den Status ändern, wird die Komponente eindeutig neu gerendert, richtig? Wenn es also neu gerendert wird, wird die Zählung niemals “neu zugewiesen”.

    – Kevin.a

    14. November 2019 um 15:17 Uhr

  • Allerdings bleibt im Rahmen der Funktion count unveränderlich. Danke Kevin!

    – Nacho

    14. November 2019 um 15:29 Uhr

const ist ein Schutz gegen die Neuzuweisung des Werts der Referenz innerhalb desselben Bereichs.

Aus MDN

Das bedeutet nicht, dass der darin enthaltene Wert unveränderlich ist, sondern nur, dass der Variablenbezeichner nicht neu zugewiesen werden kann.

Ebenfalls

Eine Konstante kann ihren Namen nicht mit einer Funktion oder einer Variablen im selben Gültigkeitsbereich teilen.

  • Primitive Werte sind jedoch unveränderlich, daher geht es bei der Frage eher darum zu erklären, wieso sich eine konstante Zahl ändern kann?

    – coagmano

    15. November 2019 um 4:07 Uhr


  • count sollte nicht so geändert werden … Sie sollten verwenden setCount(count + 1); und behalte die const. Es ist irreführend, weil das nachfolgende Rendern funktionieren würde, aber das erste Rendern mit einem anderen Wert als 0 beginnen würde.

    – tkarnau

    28. August 2020 um 22:05 Uhr


  • Um zu verhindern, dass sich mehrere Inkrementaufrufe gegenseitig überschreiben, sollten Sie Folgendes verwenden: setCount((count) => count + 1)

    – Dan

    13. August 2021 um 4:16 Uhr


Benutzer-Avatar
Abido

Nach dem Aufruf von setCount wird die Komponente neu gerendert und der erneute Aufruf von useState gibt den neuen Wert zurück. Der Punkt ist, dass die Anzahl unveränderlich ist. Hier liegt also kein Tippfehler vor.

Technisch gesehen ist es bei jedem Rendern eine neue Variable.

Quelle: Github-Problem reagieren: Docs – Hooks: ist das const ein Tippfehler?

Benutzer-Avatar
Tinashe Muchabaiwa

Es weist nicht gerade einen neuen Wert zu. useState ist einfach eine Zustandsaktualisierungsfunktion. Const wird hier verwendet, weil die Wertänderung an anderer Stelle von React verwaltet wird. Sie sagen React, dass es einen Wert für Sie verwalten soll, indem Sie useState aufrufen.

1009950cookie-checkWarum React Hook useState const verwendet und nicht let

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy