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 のインストールと設定ルールの詳細な紹介

推薦する

JSは検証コードのランダム生成を実装します

この記事の例では、検証コードのランダム生成を実現するためのJSの具体的なコードを参考までに共有してい...

WindowsにOpenSSLをインストールし、OpenSSLを使用して公開鍵と秘密鍵を生成します。

1. OpenSSL公式サイト公式ダウンロードアドレス: https://www.openssl....

コンパイル/サーバーなしでブラウザにCommonJSモジュールを実装する

目次導入1. one-click.jsとは2. パッケージングツールはどのように機能しますか? 3....

Hadoop を使用せずに Linux 環境に Spark のスタンドアロン バージョンをインストールする方法

ビッグデータはますます注目を集めており、ビッグデータのいくつかの構成要素に精通していないと、自慢でき...

HTML のキャンバスに基づくスクリーンショットのデモ

冒頭に書いた以前、Renren で JS ベースのスクリーンショット ソリューションについて説明した...

地域のカスタムカラーのためのechars 3Dマップソリューション

目次質問伸ばす問題を解決する要約する質問プロジェクトの要件に従って、以下の州地図で個々の都市を(異な...

HTML をホームページとして設定し、お気に入りに追加_Powernode Java Academy

IE ブラウザで「ホームページとして設定」および「お気に入りに追加」機能を実装する方法解決:指定さ...

ウェブ画像のホットリンクと座標値を設定するサンプルコード

時には、画像上に複数の領域を設定する必要があります。マウスで画像のさまざまな領域をクリックしてさまざ...

VueにおけるAxios非同期通信の詳細な説明

1. まず、インタラクティブに使用するための .json ファイルを作成します。json データ形式...

MySQL データベースのステートメント ワイルドカード ファジー クエリの概要

MySQL エラー: パラメータ インデックスが範囲外です (1 > パラメータ数、つまり 0...

hr 水平線スタイルの例コード

コードをコピーコードは次のとおりです。 <hr style="width:490px...

Win10 の Linux サブシステムを有効にする方法を説明します (詳細な画像とテキスト付き)

今日は、Windows 10 で Linux サブシステムを有効にする方法を紹介します。早速、手順を...

CentOS 8 に MariaDB をインストールするための詳細なチュートリアル

MariaDB データベース管理システムは MySQL のブランチであり、主にオープンソース コミュ...

Vueはユーザーログインとトークン検証を実装します

フロントエンドとバックエンドを完全に分離する場合、Vue プロジェクトでトークン検証を実装する一般的...

nginx と openssl で https を実装する方法

サーバーデータがSSL証明書を使用して暗号化および認証されていない場合、ユーザーのデータはプレーンテ...