は、私は、フォームのonSubmit検証を使用する場合this.props
がスコープ内にないいくつかの理由をonSubmit機能React form onSubmit関数でスコープが設定されていないのはなぜですか?私のリアクトコンポーネントで
<form className="form-horizontal" name="taskForm" onSubmit={this.submitTask}>
submitTask(e) {
e.preventDefault();
console.log(this.props); // undefined
console.log(this) // window object
}
とフォームを持っています。コンストラクター内のI console.log(this.props)
を実行すると、propsは正常にログアウトします。
I console.log(this)
これはウィンドウオブジェクトです。どのように反応成分の範囲を取得するのですか?
'をonSubmit = {this.submitTask:関数を矢印submitTaskコンテンツを渡すことができ、矢印関数で
.bind(this)} '。 ** [リンク](http://reactkungfu.com/2015/07/why-and-how-to-bind-methods-in-your-react-component-classes/)**。 –
Tahirは正しいですが、レンダリングを呼び出すたびにバインドするのではなく、あなたのコンストラクタに関数をバインドすることをお勧めします。バインドされていない別の方法は 'onSubmit = {event => this.submitTask(event、this.props)}' – azium
です。@ aziumの応答は正しい答えでなければなりません...あなたは小道具、関数、そしてすべてに完全にアクセスできます。 – Mussser