Ich weiß, in Vanille js können wir tun
onclick="f1();f2()"
Was wäre das Äquivalent für zwei Funktionsaufrufe von onClick in ReactJS?
Ich weiß, dass das Aufrufen einer Funktion folgendermaßen aussieht:
onClick={f1}
javascript
reactjs
user2554585
quelle
quelle
ele.onclick = ...
oder tun würdenaddEventListener
.Antworten:
Wickeln Sie Ihre zwei + Funktionsaufrufe in eine andere Funktion / Methode ein. Hier sind einige Varianten dieser Idee:
1) Separate Methode
oder mit ES6-Klassen:
2) Inline
oder ES6-Äquivalent:
quelle
onclick={function() { f1(); f2(); }}
onclick={()=>{ f1(); f2() }}
onClick={ () => f1(); f2() }
Promises
ist wahrscheinlich die Antwort, nach der Sie gesucht haben.Möglicherweise können Sie die Pfeilfunktion (ES6 +) oder die einfache alte Funktionsdeklaration verwenden.
Normaler Funktionsdeklarationstyp ( nicht ES6 + ):
Anonyme Funktion oder Pfeilfunktionstyp ( ES6 + )
Der zweite ist der kürzeste Weg, den ich kenne. Hoffe es hilft dir!
quelle
Wenn Sie bei onClick mehrere Funktionen für ein beliebiges Element aufrufen, können Sie eine Wrapper-Funktion erstellen.
Diese Funktionen können als Methode für die übergeordnete Klasse definiert und dann von der Wrapper-Funktion aufgerufen werden.
Möglicherweise haben Sie das Hauptelement, das den onChange wie folgt verursacht:
quelle
Das
onclick={()=>{ f1(); f2() }}
hat mir sehr geholfen, wenn ich zwei verschiedene Funktionen gleichzeitig haben möchte. Aber jetzt möchte ich einen Audiorecorder mit nur einer Taste erstellen. Wenn ich also zuerst klicke, möchte ich die StartFunction ausführen,f1()
und wenn ich erneut klicke, möchte ich StopFunction ausführenf2()
.Wie merkt ihr das?
quelle
const play = () => { console.log("played"); } const pause = () => { console.log("paused"); } function* audioSwitcher() { let paused = true; while (true) { if(paused) { play(); } else { pause(); } yield paused = !paused; } }
Sie können verschachtelt verwenden.
Es gibt zwei Funktionen, eine ist
openTab()
und eine anderecloseMobileMenue()
. Zuerst rufen wiropenTab()
eine andere Funktion im Inneren auf und rufen sie aufcloseMobileMenue()
.quelle