Lo sé en vainilla js, podemos hacer
onclick="f1();f2()"
¿Cuál sería el equivalente para hacer dos llamadas de función onClick en ReactJS?
Sé que llamar a una función es así:
onClick={f1}
Lo sé en vainilla js, podemos hacer
onclick="f1();f2()"
¿Cuál sería el equivalente para hacer dos llamadas de función onClick en ReactJS?
Sé que llamar a una función es así:
onClick={f1}
Respuestas:
Envuelva sus dos + llamadas a funciones en otra función / método. Aquí hay un par de variantes de esa idea:
1) Método separado
var Test = React.createClass({
onClick: function(event){
func1();
func2();
},
render: function(){
return (
<a href="#" onClick={this.onClick}>Test Link</a>
);
}
});
o con clases ES6:
class Test extends React.Component {
onClick(event) {
func1();
func2();
}
render() {
return (
<a href="#" onClick={this.onClick}>Test Link</a>
);
}
}
2) en línea
<a href="#" onClick={function(event){ func1(); func2()}}>Test Link</a>
o equivalente a ES6:
<a href="#" onClick={() => { func1(); func2();}}>Test Link</a>
onclick={function() { f1(); f2(); }}
onclick={()=>{ f1(); f2() }}
onClick={ () => f1(); f2() }
Promises
probablemente sea la respuesta que estaba buscando.
Tal vez pueda usar la función de flecha (ES6 +) o la declaración de función antigua simple.
Tipo de declaración de función normal ( no ES6 + ):
<link href="#" onClick={function(event){ func1(event); func2();}}>Trigger here</link>
Función anónima o tipo de función de flecha ( ES6 + )
<link href="#" onClick={(event) => { func1(event); func2();}}>Trigger here</link>
El segundo es el camino más corto que conozco. ¡Espero que te ayude!
Al llamar a múltiples funciones en onClick para cualquier elemento, puede crear una función contenedora, algo como esto.
wrapperFunction = () => {
//do something
function 1();
//do something
function 2();
//do something
function 3();
}
Estas funciones pueden definirse como un método en la clase principal y luego llamarse desde la función contenedora.
Es posible que tenga el elemento principal que causará el onChange de esta manera,
<a href='#' onClick={this.wrapperFunction}>Some Link</a>
esto onclick={()=>{ f1(); f2() }}
me ayudó mucho si quiero dos funciones diferentes al mismo tiempo. Pero ahora quiero crear una grabadora de audio con un solo botón. Entonces, si hago clic primero, quiero ejecutar StartFunction f1()
y si hago clic nuevamente, quiero ejecutar StopFunction f2()
.
¿Cómo se dan cuenta de esto, chicos?
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; } }
Puede usar anidado.
Hay una función de remolque, una es openTab()
y otra es closeMobileMenue()
, primero llamamos openTab()
y llamamos a otra función dentro closeMobileMenue()
.
function openTab() {
window.open('https://play.google.com/store/apps/details?id=com.drishya');
closeMobileMenue() //After open new tab, Nav Menue will close.
}
onClick={openTab}
ele.onclick = ...
oaddEventListener
.