2016-10-31 13 views
1

の[機能]をプロパティを読み取ることができません:は、私は私のレンダリング機能の私のリターン部分でこれを持っている未定義

<table> 
     <tbody> 
      {nums.map(function(num, index){ 
      return <tr key={ index }>{num} <input type="submit" value="unmatch" onClick={this.unMatchButtonClicked} /> 
      </tr>; 
      })} 
     </tbody> 
     </table> 

しかし、私はページをロードするとき、私はというエラーを取得:Cannot read property 'unMatchButtonClicked' of undefined

であっても、それにもかかわらず関数がrender:function()

unMatchButtonClicked: function(){ 
    console.log('called'); 
}, 

前に直接あるのでthisの範囲、なぜそれが定義されていないとは何でしょうか?

+1

セット 'this'ため' .map'コールバック - 'nums.map(関数(NUM、インデックス){/ *コード* /}、この)' –

+0

@AlexanderT。歓声bro –

+0

@AlexanderT。私はこれに1つの問題があります。コードの他の部分で 'this 'を変更し、他の場所にある' this'よりむしろマウスクリックに他の場所で変数を設定しています。あなたが必要であれば、詳しく説明することができます –

答えて

0
  1. オプション:Array.map(function() {/*...*/}, this)
  2. オプション:var unMatchButtonClicked = this.unMatchButtonClickedとは別に、あなたのクリックハンドラの矢印-機能を使用することを検討したり、関数にthisをバインドする必要があることから、

onClick={unMatchButtonClicked}

http://egorsmirnov.me/2015/08/16/react-and-es6-part3.html
関連する問題