Wiem, że w waniliowym js możemy to zrobić
onclick="f1();f2()"
Jaki byłby odpowiednik wykonania dwóch wywołań funkcji onClick w ReactJS?
Wiem, że wywołanie jednej funkcji wygląda tak:
onClick={f1}
javascript
reactjs
user2554585
źródło
źródło
ele.onclick = ...
lubaddEventListener
.Odpowiedzi:
Zawiń swoje dwa + wywołania funkcji w inną funkcję / metodę. Oto kilka wariantów tego pomysłu:
1) Oddzielna metoda
lub z klasami ES6:
2) Inline
lub odpowiednik ES6:
źródło
onclick={function() { f1(); f2(); }}
onclick={()=>{ f1(); f2() }}
onClick={ () => f1(); f2() }
Promises
prawdopodobnie są odpowiedzią, której szukałeś.Może możesz użyć funkcji strzałkowej (ES6 +) lub prostej starej deklaracji funkcji.
Typ deklaracji funkcji normalnej ( nie ES6 + ):
Funkcja anonimowa lub typ funkcji strzałkowej ( ES6 + )
Druga to najkrótsza droga, jaką znam. Mam nadzieję, że ci to pomoże!
źródło
Wywołując wiele funkcji onClick dla dowolnego elementu, możesz utworzyć funkcję opakowującą, coś w tym rodzaju.
Funkcje te można zdefiniować jako metodę w klasie nadrzędnej, a następnie wywołać z funkcji opakowania.
Możesz mieć główny element, który spowoduje zmianę onChange w ten sposób,
źródło
bardzo
onclick={()=>{ f1(); f2() }}
mi to pomogło, jeśli chcę mieć jednocześnie dwie różne funkcje. Ale teraz chcę stworzyć nagrywarkę audio za pomocą tylko jednego przycisku. Jeśli więc kliknę najpierw, chcę uruchomić StartFunction,f1()
a jeśli kliknę ponownie, chcę uruchomić StopFunctionf2()
.Jak to sobie uświadamiacie?
źródło
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; } }
Możesz użyć zagnieżdżonych.
Istnieje jedna funkcja holowania,
openTab()
a druga tocloseMobileMenue()
, po pierwsze wywołujemyopenTab()
i wywołujemy inną funkcję w środkucloseMobileMenue()
.źródło