React / JS - 如何将其他参数传递给onClick处理程序

时间:2017-02-13 11:05:40

标签: javascript reactjs

场景很简单 - 我有一些跨度,当我点击它们时,我使用事件“e”来跟踪用户点击的元素(我有很多这样的元素)所以得到“e.target”是从onClick非常简单,就像这样:

React.createElement('span', {
    onClick: this._toggleIcons
}, span);

_toggleIcons: function(e){
    $(e.target).toggleClass("show");
},

到目前为止一切顺利。

但是现在我需要将一些额外的参数传递给事件“e”,但我不知道该怎么做。我无法确定这是否可能。

React.createElement('span', {
    onClick: this._toggleRemoveOption( ?params? )
}, span2);

_toggleRemoveOption: function(e, param1, param2){
    $(e.target).toggleClass("remove");

    console.log(e.target);
    console.log(param1);
    console.log(param2);
},

所以我的问题是 - 如何将我的onClick事件处理程序参数设置为白色以便我可以使用它们(param1,param2)并且还可以访问“e.target”?

谢谢

2 个答案:

答案 0 :(得分:3)

创建一个新功能(es5ify方式)

React.createElement('span', {
    onClick: (function(_this){
      return function(e) {
        _this._toggleRemoveOption(e, 'param1', 'param2')
      }
    }(this))

}, span2);

或者

React.createElement('span', {
    onClick: function(e) {
        this._toggleRemoveOption(e, 'param1', 'param2')
    }.bind(this)

}, span2);

答案 1 :(得分:1)

使用bind:

sbt run