2016-05-04 8 views
0

を保つには、私は、このようにイベントをバインドします。バインドイベントハンドラへの適用範囲が、元の引数

click(evt) { 
    // evt is undefined here 
    this.setState({ evt: evt }) 
} 

このコードを動作させるにはどうすればよいですか?

render() { 
    return <button onClick={function(e) { this.click(e)}.bind(this)}>click me</button> 
} 

それとも、あなたがES6である場合は、矢印の機能を使用することができます:あなたは別の関数でラップすることができ、クリックイベントからeを伝播する

+0

元の引数が何でありますか? 'evt.target'? 「これ? –

+0

'evt'だけ、' onClick'イベントリスナーによって渡されるデフォルトの引数 –

+0

今、何が起こっていますか? 'evt'は定義されていませんか? –

答えて

1

render() { 
    return <button onClick={(e) => { this.click(e)}}>click me</button> 
} 
+0

私のReactコンポーネントではなく、関数のコンテキストであるwrapper関数内に 'this'がありませんか? –

+0

これがラッピング機能がバインドされている理由です。 'function(e){this.click(e)}。bind(this) ' –

+0

ahはい申し訳ありません私は大括弧 –

関連する問題