2014-09-26 30 views
39

我知道香草JS,我們可以做通話多種功能的onClick ReactJS

onclick="f1();f2()" 

什麼將是做兩個函數調用ReactJS的onClick等價?

我知道調用一個函數是這樣的:

onClick={f1} 
+0

非常簡單:傳遞一個調用這兩個函數的函數,就像'ele.onclick = ...'或'addEventListener'一樣。 – 2014-09-26 22:44:31

回答

74

裹在另一個函數/方法你的兩個+函數調用。以下是這一想法的幾個變體:

1)分離的方法

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

或ES6類:

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

2)內嵌

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

或等效ES6:

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

或更不優化:'onclick = {function(){f1(); F2(); }}' – 2014-09-26 22:44:01

+8

或者在ES6中'onclick = {()=> {f1(); f2()}}' – 2016-03-11 13:14:02

+2

或者在cjsx:'onClick = {()=> f1(); f2()}' – Vadorequest 2016-03-31 13:05:05