Heim > Web-Frontend > js-Tutorial > Warum wird meine React-Funktion „onClick' während des Renderns ausgelöst?

Warum wird meine React-Funktion „onClick' während des Renderns ausgelöst?

Barbara Streisand
Freigeben: 2024-11-16 13:55:03
Original
313 Leute haben es durchsucht

Why Does My React `onClick` Function Fire During Rendering?

Verstehen der vorzeitigen Ausführung der onClick-Funktion von React

In React ist es wichtig zu verstehen, warum die onClick-Funktion während des Renderns ausgelöst werden kann. Dieses Phänomen kann auftreten, wenn Werte an untergeordnete Komponenten übergeben werden.

Problem:

Beim Zuordnen über eine Liste von Objekten und Verwenden der Funktion „map()“, um sie anzuzeigen, wird die Die jedem Objekt zugeordnete Schaltfläche ruft die onClick-Funktion während des Renderns vorzeitig auf.

Ursache:

Der Schlüssel zu diesem Problem liegt in der Art und Weise, wie die onClick-Funktion übergeben wird. Im bereitgestellten Code ist die folgende Zeile für dieses Verhalten verantwortlich:

<button type="submit" onClick={this.props.removeTaskFunction(todo)}>
Nach dem Login kopieren

Hier ruft das onClick-Attribut die Funktion direkt auf, indem es eine Klammer voranstellt. Dies bedeutet, dass der onClick-Handler sofort ausgeführt wird, wodurch die Funktion während des Renderns ausgeführt wird.

Lösung:

Um eine vorzeitige Ausführung zu verhindern, sollten Sie die Funktion selbst an übergeben onClick statt es aufzurufen. Dies kann durch die Verwendung einer in ES6 eingeführten Pfeilfunktion erreicht werden. Hier ist der korrigierte Code:

<button type="submit" onClick={() => this.props.removeTaskFunction(todo)}>
Nach dem Login kopieren

Erklärung:

In dieser Zeile verwenden wir eine Pfeilfunktion, um eine prägnante anonyme Funktion zu definieren, die an onClick übergeben wird. Wenn auf die Schaltfläche geklickt wird, ruft die Pfeilfunktion dann die „removeTaskFunction“ mit dem todo-Objekt auf. Dieser Ansatz stellt sicher, dass die onClick-Funktion nur ausgelöst wird, wenn auf die Schaltfläche geklickt wird, nicht während des Renderns.

Das obige ist der detaillierte Inhalt vonWarum wird meine React-Funktion „onClick' während des Renderns ausgelöst?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage