Je sais en vanilla js, on peut faire
onclick="f1();f2()"
Quel serait l'équivalent pour faire deux appels de fonction onClick dans ReactJS?
Je sais qu'appeler une fonction est comme ceci:
onClick={f1}
javascript
reactjs
user2554585
la source
la source
ele.onclick = ...
ouaddEventListener
.Réponses:
Enveloppez vos deux appels de fonction + dans une autre fonction / méthode. Voici quelques variantes de cette idée:
1) Méthode séparée
ou avec les classes ES6:
2) en ligne
ou équivalent ES6:
la source
onclick={function() { f1(); f2(); }}
onclick={()=>{ f1(); f2() }}
onClick={ () => f1(); f2() }
Promises
c'est probablement la réponse que vous recherchiez.Vous pouvez peut-être utiliser la fonction flèche (ES6 +) ou la simple déclaration de l'ancienne fonction.
Type de déclaration de fonction normale ( pas ES6 + ):
Fonction anonyme ou type de fonction de flèche ( ES6 + )
La seconde est la route la plus courte que je connaisse. J'espère que cela vous aide!
la source
En appelant plusieurs fonctions sur onClick pour n'importe quel élément, vous pouvez créer une fonction wrapper, quelque chose comme ça.
Ces fonctions peuvent être définies comme une méthode sur la classe parent puis appelées à partir de la fonction wrapper.
Vous pouvez avoir l'élément principal qui provoquera le onChange comme ceci,
la source
cela
onclick={()=>{ f1(); f2() }}
m'a beaucoup aidé si je veux deux fonctions différentes en même temps. Mais maintenant, je veux créer un enregistreur audio avec un seul bouton. Donc, si je clique d'abord, je veux exécuter StartFunctionf1()
et si je clique à nouveau, je veux exécuter StopFunctionf2()
.Comment réalisez-vous cela?
la source
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; } }
Vous pouvez utiliser imbriqué.
Il y a une fonction de remorquage, une
openTab()
et une autrecloseMobileMenue()
, tout d'abord, nous appelonsopenTab()
et appelons une autre fonction à l'intérieurcloseMobileMenue()
.la source