2017-02-13 9 views
1

シナリオは単純です - 私はそれらをクリックすると、イベント "e"を使用して、ユーザーがクリックした要素を追跡しますこのように) "e.target"を取得することは、このようにonClickからかなりシンプルです。React/JS - 追加のパラメータを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」へのアクセス権を持つことができるように?

はありがとう

+0

タグ - を追加する必要はありません質問タイトルにSsolved_、_resolved_などの単語を、S tackOverflowには、質問に受け入れられた回答があることを伝えるビルトインの方法があります。 :) –

+0

私は参照してください。さて、ありがとう:) – Combine

答えて

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); 
+0

うわー。 :Oこれはチャームのように動作します!友よありがとう!私はあなたとstackoverflowが大好き!どうもありがとうございました!!! – Combine

1

利用バインド:

React.createElement('span', { 
     onClick: this._toggleRemoveOption.bind(null, param1, param2) 
    }, span2); 


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

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

この回答は完璧に機能します!どうもありがとうございました! – Combine

関連する問題