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 実行コードを含む)
アンインストールまず、次のコマンドを使用して、httpd サービスがインストールされているかどうか、...
React Hooks は React 16.8 で導入された新しい機能で、クラスを使用せずに状態や...
<br /> この記事は allwebdesignresources.com から Ra...
前回の記事では、MySQL 5.7.19 無償インストール版 (64 ビット) の設定方法についての...
CentOS6 インストール ディスク (任意のバージョン) を準備するか、別の pnux インスト...
目次複数テーブル結合クエリ内部結合左結合右結合サブクエリ要約する複数テーブル結合クエリテーブル間の接...
目次トピック分析する基本的な解決策基本的な再帰再帰最適化要約するトピック私たちが答えなければならない...
Remote-SSHをインストールして設定するまず VSCode を開き、拡張機能を見つけて、Rem...
目次ステップ 1: root ユーザーとしてログインします。ステップ 2: 新しいデータ テーブルを...
次のサンプル コードでは、Tomcat が XML を解析し、リフレクションを通じてオブジェクトを作...
目次1. 例: これはデータとメソッドを直接取得できます2. 環境を準備し、ソースコードをデバッグし...
目次1. 背景建築問題現象2. 分析プロセス接続プール不安に陥る雲を晴らして光を見よう3. 解決策I...
実行後、一部の Docker コンテナが終了することがあります。原因を調べるには、Docker コン...
背景色と透明度の設定上記のように、最初の画像の場合は、灰色の背景と左上隅に白い「カバー」という文字を...
概要Binlog2sql は、Python で開発されたオープンソースの MySQL Binlog ...