2014-09-26 11 views
39

so in js vaniglia, possiamo farechiamare più funzioni onClick ReactJS

onclick="f1();f2()" 

Quale sarebbe l'equivalente per effettuare chiamate onClick in ReactJS due funzioni?

So chiamare una funzione è simile a questo:

onClick={f1} 
+0

Molto semplice: passare una funzione che chiama le due funzioni, proprio come si farebbe con 'ele.onclick = ...' o 'addEventListener'. –

risposta

74

avvolgere le due + chiamate di funzione in un'altra funzione/metodo. Ecco un paio di varianti di questa idea:

1) Metodo indipendente

var Test = React.createClass({ 
    onClick: function(event){ 
     func1(); 
     func2(); 
    }, 
    render: function(){ 
     return (
     <a href="#" onClick={this.onClick}>Test Link</a> 
    ); 
    } 
}); 

oa classi ES6:

class Test extends React.Component { 
    onClick(event) { 
     func1(); 
     func2(); 
    } 
    render() { 
     return (
     <a href="#" onClick={this.onClick}>Test Link</a> 
    ); 
    } 
} 

2) linea

<a href="#" onClick={function(event){ func1(); func2()}}>Test Link</a> 

o equivalente ES6:

<a href="#" onClick={(event) => { func1(); func2();}}>Test Link</a> 
+4

o meno ottimale: 'onclick = {function() {f1(); f2(); }} ' –

+8

O in ES6' onclick = {() => {f1(); f2()}} ' –

+2

Oppure in cjsx:' onClick = {() => f1(); f2()} ' – Vadorequest