1. 矢印関数1. 矢印関数自体はこれをバインドしないという事実を利用します。 2. render() メソッド内のこれは、setState() を取得できるコンポーネント インスタンスです。 クラスAppはReact.Componentを拡張します。 状態 = { カウント: 0 } // イベントハンドラ onIncrement() { console.log('イベント処理関数内の this:', this) this.setState({ カウント:この状態の数+1 }) } // レンダリング render() { 戻る ( <div> <h1>{this.state.count}</h1> //矢印関数内のこれは外部環境を指しています。ここでは: render() メソッド <button onClick={()=>this.onIncrement()}>+1</button> {/* <button onClick={this.onIncrement()}>+1</button> */ </div> ) } } 2. Function.proptype.bind()1. ES5のbindメソッドを使用して、イベントハンドラー内のこれをコンポーネントインスタンスにバインドします。 クラスAppはReact.Componentを拡張します。 コンストラクタ() { 素晴らしい() // データ this.state = { カウント: 0 } // 最初のメソッド.bind は this ポインタを変更し、関数を返し、関数を実行しません this.onIncrement = this.onIncrement.bind(this) } // イベントハンドラ onIncrement() { console.log('イベント処理関数内の this:', this) this.setState({ カウント:この状態の数+1 }) } // レンダリング render() { 戻る ( <div> <h1>{this.state.count}</h1> <button onClick={this.onIncrement}>+1</button> {/* <button onClick={this.onIncrement()}>+1</button> */ </div> ) } } 3.クラスインスタンスメソッド1. クラスインスタンスメソッドを矢印関数の形で使う 2. この構文は実験的ですが、babelが存在するため直接使用できます。 クラスAppはReact.Componentを拡張します。 コンストラクタ() { 素晴らしい() // データ this.state = { カウント: 0 } } // イベントハンドラ onIncrement=()=> { console.log('イベント処理関数内の this:', this) this.setState({ カウント:この状態の数+1 }) } // レンダリング render() { 戻る ( <div> <h1>{this.state.count}</h1> <button onClick={this.onIncrement}>+1</button> {/* <button onClick={this.onIncrement()}>+1</button> */ </div> ) } } これで、React で this をイベント バインディングする 3 つのメソッドの実装に関するこの記事は終了です。React で this をイベント バインディングする関連コンテンツの詳細については、123WORDPRESS.COM の以前の記事を検索するか、次の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。 以下もご興味があるかもしれません:
|
<<: mysql8.0.11をインストールしてrootパスワードを変更し、navicat for mysqlに接続するアイデアの詳細な説明
>>: Linux 環境で crontab コマンドを使用して、スケジュールされた定期的な実行タスクを設定します (PHP 実行コードを含む)
目次1. 一般的な高階関数1.1、フィルター1.2、地図1.3、減らすHigher Order fu...
目次1. 一意の値をフィルタリングする2. 短絡評価2.1 シナリオ例3. ブール変換4. 文字列を...
コンテンツ1. 読者に留まる理由を与える。ウェブページを面白く魅力的なものにしましょう。しかし、まず...
VMware Workstation 14 ProにCentOS 7.0をインストールする具体的な方...
ドラッグ アンド ドロップはフロントエンドでよく使われる機能であり、多くのエフェクトで js のドラ...
長い移植と情報検索の期間を経て、組み込みDockerの問題を解決することができました。インターネット...
Nginx はバージョン番号を非表示にする実稼働環境では、セキュリティ上の脆弱性の漏洩を避けるために...
今日、牛南ニュースリリースシステムについて学んでいたとき、牛南先生はスクロールバーに関するいくつかの...
macにbrewを使ってphp56をインストールしたところ、 opensslがバージョン1.1だった...
数日前に CentOS8 がリリースされました。8 の最初のバージョンですが、今日は VM12 に ...
DNMP の紹介DNMP (Docker + Nginx + MySQL + PHP7/5 + Re...
<br />元のアドレス: http://andymao.com/andy/post/8...
この記事の例では、ショッピングカートの計算を実装するためのjsの具体的なコードを参考までに共有してい...
フレックスレイアウト定義: Flexレイアウトの要素は、 Flex 、または略して「コンテナー」と呼...
2005年に業界に入ってから数か月後、労働者の日休みの期間中、1か月以上毎日12時まで残業をしました...