紛らわしいタイトルに申し訳ありません。私は、次のReactの匿名関数で、自分のonClick属性の関数をラップする必要があるのはなぜですか?
<Component onClick={this.doSomething()} />
としての私の構成要素の一つにonClick属性を持っている場合、私は多くの場合、doSomethingの()関数が実際に呼んでいるものに応じて変なエラーが発生します。 doSomething()が状態を特に変更している場合は、あらゆる種類のレンダリングエラーが発生します。一方、私がこれを行うと、
var _this = this;
<Component onClick{
function(){
_this.doSomething()
}
} />
すべてのエラーが消えて、すべてが私の意図どおりに動作します。私のonClickアトリビュートを無名関数にラップして正確に何をしていますか?私がやろうとしていることをやるより良い方法がありますか?あなたがこれを行う場合は
あなたは 'onClick = {_this.doSomething}'を行うことができます – Rajesh
@Rajeshいつもそうではありません。 'this.doSomething.bind(this) 'も必要になる可能性があります。 –
@BenFortuneはい、あなたは正しいです。私たちはそれをしなければならないかもしれません。 – Rajesh