React は入力値を取得し、2 つのメソッドの例を送信します

React は入力値を取得し、2 つのメソッドの例を送信します

方法1: DOMが提供するイベントオブジェクトのターゲットイベント属性を使用して値を取得し、送信する

'react' から React をインポートします。
 
クラス InputDemo は React.Component を拡張します{
  状態 = {
    InputValue : "", //入力ボックスに入力した値};
 
  handleGetInputValue = (イベント) => {
    this.setState({
      入力値: イベントターゲット値、
    })
  };
 
  ハンドルポスト = () => {
    定数 {InputValue} = this.state;
    console.log(入力値、'------入力値');
    //ここで、ディスパッチの送信などの送信操作を実行します。};
 
  与える(){
    戻る(
      <div>
        <入力
          値={this.state.InputValue}
          onChange={this.handleGetInputValue}
        />
        <button onClick={this.handlePost}>送信</button>
      </div>
    )
  }
}
 
デフォルトの InputDemo をエクスポートします。

ここでの <input /> と <button /> はどちらも HTML タグです。もちろん、Antd の <Input /> および <Button /> コンポーネントを使用することもできます。その場合、内部の内容は変更されません。

まず、コンポーネント上部のstateにInputValue:"を定義し、下の<input />にvalue={this.state.InputValue}と記述します。onChangeイベントが削除されると、この時点では入力ボックスに何も入力できません。

React では、すべての状態は React の状態によって制御されるべきだと考えています。<input />、<textarea />、<select /> などの入力コントロールに値が設定されている限り、それらの値は常に設定された値に基づいて決まります。値が変更されていない場合は、値は変更されません。

React では、コンポーネントのコンテンツを更新するには setState が必要なので、入力ボックスの onChange イベントをリッスンして入力ボックスのコンテンツを取得し、setState を通じて状態の InputValue を更新する必要があります。そうすることで、<input /> のコンテンツがリアルタイムで更新されます。

DOM イベント オブジェクトのターゲット イベント属性を使用する onChange の handleGetInputValue メソッドについて説明します。

ターゲット イベント プロパティは、イベントを生成した要素、ドキュメント、ウィンドウなど、イベントのターゲット ノード (イベントをトリガーしたノード) を返します。

詳細については、W3C標準の概要を参照してください。

方法2: Reactのrefを使用してDOM要素にアクセスし、値を送信する

ステートレスコンポーネントの記述:

const InputDemo = () => {
  入力値を入力します。
  定数handlePost = (e) => {
    e.preventDefault() の場合;
    定数 valueTemp = 入力値.値;
    console.log(valueTemp, '------valueTemp');
    //ここで、ディスパッチの送信などの送信操作を実行します。};
 
  戻る (
    <div>
      <フォームonSubmit={handlePost}>
        <入力
          ref={入力 => 入力値 = 入力}
        />
        <button onClick={handlePost}>送信</button>
      </フォーム>
    </div>
  )
};
 
デフォルトの InputDemo をエクスポートします。

ステートフルコンポーネントの記述:

'react' から React をインポートします。
 
クラス InputDemo は React.Component を拡張します {
  ハンドルポスト = (e) => {
    e.preventDefault() の場合;
    定数 valueTemp = this.inputValue.value;
    console.log(valueTemp, '------valueTemp');
    //ここで、ディスパッチの送信などの送信操作を実行します。};
 
  与える() {
    戻る (
      <div>
        <フォームonSubmit={this.handlePost}>
          <入力
            ref={input => this.inputValue = 入力}
          />
          <button onClick={this.handlePost}>送信</button>
        </フォーム>
      </div>
    )
  }
};
 
デフォルトの InputDemo をエクスポートします。

Ref は、DOM 要素またはコンポーネント インスタンスに安全にアクセスするために React によって提供されるハンドルです。要素に ref 属性を追加し、コールバック関数で DOM ツリー内の要素のハンドルを受け入れることができます。このハンドルは、コールバック関数の最初のパラメーターとして返されます。

これら2つの記述方法に加えて、AntdのFormコンポーネントを使用してフォーム機能を実装することもできます。ポータル:ReactはAntdのFormコンポーネントを使用してフォーム機能を実装します

要約する

Reactで入力値を取得して送信する2つの方法についての記事はこれで終わりです。Reactで入力値を取得して送信することに関するより関連性の高いコンテンツについては、123WORDPRESS.COMで以前の記事を検索するか、以下の関連記事を引き続き閲覧してください。今後とも123WORDPRESS.COMをよろしくお願いいたします。

以下もご興味があるかもしれません:
  • Reactプロジェクトでantdのフォームコンポーネントを使用して、入力ボックスの値を動的に設定する
  • antd をインストールした後、React で ''./locale'' を解決できない問題を解決する (推奨)
  • React は antd オンラインテーマの動的切り替えを実装します
  • Reactはantdオンデマンドロードの使用を設定します
  • create-react-app を使用して CSS モジュール、SASS、および ANTD を追加する詳細な説明
  • React は antd のアップロード コンポーネントを使用してファイル フォーム送信機能を実装します (完全なコード)

<<:  MySQL で URL タイムゾーンの罠を回避する方法

>>:  Nginx のインストールと設定ルールの詳細な紹介

推薦する

Linux システムでデプロイメント プロジェクトを設定する方法

1. ファイアウォールの設定を変更し、対応するポートを開きますLinux システムのファイアウォール...

年末ですが、MySQL パスワードは安全ですか?

序文:年末です。データベースを検査する時期ではないでしょうか?一般的に、検査では、パスワードの複雑さ...

Vue フロントエンドと Django バックエンドを使用して、一定期間内のデータをクエリする方法

序文開発プロセスでは、すべてのデータではなく特定の期間内のデータをクエリするなど、クエリのフィルタリ...

MySQL の 10 進数データ型の小数点埋め込み問題の詳細な説明

序文開発プロセスでは、10 進データ型がよく使用されます。 MySQL では、小数点は正確なデータ型...

MySQLサブクエリでorder byが効かない問題の解決方法

偶然にも、SQL ステートメントを異なる MySQL インスタンスで実行すると、異なる結果が生成され...

JS で Websocket ベースのマルチターミナル ブリッジング プラットフォームを実装する方法

目次1. デバッグ対象2. WebSocketの機能3. ソケット接続を確立する3.1 部屋の作成方...

JSは文字列内の指定された文字列のn番目の出現位置を取得します

文字の位置を取得するための同様の方法について学習します。 charAt() 文字列内の指定された位置...

MySQL パーティション関数の詳細な説明と例の分析

まず、データベース パーティショニングとは何でしょうか?以前、MySQL のテーブル パーティショニ...

Linuxでpyファイルを直接実行する方法

1. まずファイルを作成します(ファイルを配置するディレクトリにcdします) myTest.py を...

MySQL 8.0.23 のインストールと設定方法のグラフィックチュートリアル (Win10 の場合)

この記事では、MySQL 8.0.23のインストールと設定方法を参考までに紹介します。具体的な内容は...

純粋な CSS で中空効果を実現するためのサンプルコード

私は最近、空洞化効果について研究しました。背景クリップ: テキスト背景はテキストの前景色にクリップさ...

Tomcat の一般的な例外と解決コードの例

弊社のプロジェクトは Java で開発され、ミドルウェアは Tomcat でした。運用中に、Tomc...

better-scrollプラグインのスライドできないバグについて(2021年プラグインで解決)

より良いスクロールの原則親コンテナーであるため、ラッパーの高さはコンテンツのサイズに応じて増加します...

MySQLインデックスの失敗の典型的なケース

目次典型的なケース付録: 一般的なインデックス障害の状況典型的なケース次の構造を持つ 2 つのテーブ...

MySQL でデータを削除してもテーブル ファイルのサイズが変更されないのはなぜですか?

長期間稼働しているデータベースの場合、テーブルがストレージ領域を占有しすぎるという問題がよく発生しま...