答えて
この場合App
インスタンスです。 Function.prototype.bind
が何について
The bind() method creates a new function that, when called, has its this keyword set to the provided value, [...]
我々はハンドラ関数にthis
(App
インスタンス)を結合しなかった場合は、そのときhandleChange
が発射され、内部this
その関数の<input>
要素には、onChange
イベントハンドラが含まれています。
bind
を使用すると、this
は、イベントハンドラ内のApp
インスタンスに強制されます。
バインドウェイなしで関数を呼び出すと、そのコンテキスト(this)がJavaScriptが動作する環境のグローバル変数に設定されます。ブラウザーでは、これはウィンドウのグローバル変数です。
bind
は、コアのJavaScriptです。バインディングイベントの仕組みです。それは、リアクトの概念ではありません。
イベントハンドラ内で関数をバインドする代わりに、コンストラクタ自体でバインドすることができます。
constructor(props) {
super(props);
this.handleChange= this.handleChange.bind(this);
}
onClickをバインドする必要があります。そうしないと、グローバルオブジェクトを参照するためです。一方
あなたのonClickが
選択のように任意のHTMLタグ内に定義されている場合もreactjsの要素として考え、それがこのがいるのonClickイベントにバインドされ、自身が提供されます。
あなたは選択のこのローカルにあなたのイベントを結合しないのであれば、それはmendatoryある
typeError:function not defined
だから、バインディングエラーがスローされます。
handleChange =() => {
this.setState ({checked: !this.state.checked});
}
は今、あなたはこれを呼び出すことができます:あなたはこのように機能「handleChange」を変更することができますES6まで
this.state.something.map(function(holidays,i) {
return
<div>
<Select onClick="this.function"/>
</div>
}, this)
のようなマップにしてから何かを返却する場合
同じことが適用されます関数:onChange = {this.handleChange}
。希望はあなたを助けるでしょう:)
Alirezaに感謝して私の答えを更新してください^^。私はスタックオーバーフローの初心者です:D –
- 1. 反応ネイティブランアンドロイドと反応ネイティブスタート
- 2. バインディングイベント別のクラスでは
- 3. 反応し、ツールボックスの反応ネイティブアプリ
- 4. 反応がネイティブで反応しない
- 5. 反応対反応DOM混乱
- 6. 反応ステータス404と反応ルータとHTMLWebpackPlugin
- 7. と反応して反応しない
- 8. が反応ブートストラップ
- 9. 反応ネイティブカスタムダイアログ
- 10. が反応:キー
- 11. 反応-CSS-モジュール
- 12. 反応のキーバインド
- 13. FParsec反応例
- 14. は反応バナナ
- 15. データバインディングの反応
- 16. が反応JS
- 17. が反応 - コンポーネント
- 18. は反応し
- 19. カントセットアップ反応ルータ
- 20. updateComponent - 反応
- 21. UI反応カピバラボタンクリックテスト
- 22. ファイヤーベースログイン:反応コンポーネント
- 23. 反応ルータパブリックパスurl
- 24. 継承反応
- 25. 反応し、ネイティブ
- 26. 反応のコンソールロギング?
- 27. が反応 - コンポーネント
- 28. が反応:
- 29. ReactJS反応ルータRoutingContext
- 30. 反応中のリダイレクト
コンテキストをバインドすることは、特に新人にとっては混乱を招くかもしれません。代わりに、適切なコンテキストを保持する* arrow関数*を使用することをお勧めします。 –