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

推薦する

BootStrap グリッド間に隙間を残す解決策

目次[例を見る]: 【本来の効果は以下の通り】理由は次のとおりです。 【解決】:要約するBootSt...

MySQL のインデックスの種類と基本的な使用例

目次索引- 総合索引- ユニークなインデックス- 主キーインデックス- 複合インデックス- 全文索引...

Vueでミックスインを使用する方法

目次序文使い方要約する序文Vue にはコードの再利用に使われる mixins という設定項目がありま...

AngularでTweenMaxアニメーションライブラリを使用する際の問題と解決策

最近何もすることがないのでCSSをいじっていますより良いアニメーションライブラリTweenMaxを見...

MySQL グリーンバージョン設定コードと 1067 エラーの詳細

MySQL グリーンバージョン設定コードと 1067 エラーMySQL エンコーディングを表示 &#...

モバイルプラットフォーム開発におけるメタタグの適用の詳細な説明

デスクトップ プラットフォームの Web レイアウトのメタ タグは誰もがよく知っています。これは常に...

ハイパーリンクの幅と高さを直接設定できない問題の解決策

幅と高さを直接使用することはできません。 display:block; または display:in...

HTMLのインライン要素とブロックレベル要素とは何か、またそれらの違いは何ですか

以前の就職面接で面接官が尋ねた質問を覚えています。「インライン要素とは何ですか。ブロックレベル要素と...

MySQL のスケジュールされた完全なデータベースバックアップ

目次1. MySQLデータのバックアップ1.1、データをバックアップするためのmysqldumpコマ...

Ubuntu 18.04 のsources.listをAlibabaまたはTsinghuaミラーに変更する方法

1. バックアップソースリストUbuntu のデフォルトのソースは国内サーバーではないため、更新され...

MySQL 集計関数のネストされた使用操作

目的: MySQL 集計関数のネストされた使用集計関数は直接ネストできません。例: max(coun...

TypeScriptの列挙型を詳しく説明する

目次1. デジタル列挙2. 文字列の列挙3. 逆マッピング4. 異種列挙5. 定数列挙6. 列挙メン...

CSS 属性値 clear:right が機能しない理由の詳細

clear プロパティを使用してフロートをクリアすることはよくあることであり、clear プロパティ...

ウェブサイトにファビコンを追加するためのヒント: URLの前の小さなアイコン

いわゆるファビコンは、Favorites Icon の略で、中国語ではウェブサイトアバターと呼ばれて...