So verwenden Sie die Form-Komponente von Antd in React, um Formularfunktionen zu implementieren

So verwenden Sie die Form-Komponente von Antd in React, um Formularfunktionen zu implementieren

1. Bauteile

1. Ein Formular muss Formularfelder enthalten. Dies können Eingabesteuerelemente, Standardformularfelder, Beschriftungen, Dropdown-Menüs, Textfelder usw. sein.

Hier verweisen wir zunächst auf das gekapselte Formularfeld <Form.Item />

2. Das von Form.create verarbeitete Formular verfügt über die Funktion, Daten automatisch zu erfassen und zu überprüfen. Wenn diese Funktion jedoch nicht benötigt wird oder das Standardverhalten die Geschäftsanforderungen nicht erfüllen kann, können Sie Form.create nicht verwenden und die Daten selbst verarbeiten.

Die von Form.create() umschlossene Komponente verfügt über eine eigene this.props.form-Eigenschaft. this.props.form bietet viele APIs zur Datenverarbeitung, wie z. B. getFieldDecorator, das für die bidirektionale Bindung mit dem Formular verwendet wird. Weitere Einzelheiten finden Sie im offiziellen Antd-Dokument: Klicken Sie hier, um es anzuzeigen

Zeigen Sie zuerst den Formularstil an:

importiere React von „react“;
importiere {Formular, Tabelle, Schaltfläche, Auswahl, Eingabe, Datumsauswahl} aus „antd“;
 
const FormItem = Form.Item;
const Option = Auswählen.Option;
const {RangePicker} = DatePicker; //Holen Sie sich das Datumsbereichssteuerelement in der Datumsauswahlsteuerelementklasse UserManage extends React.Component {
  rendern() {
    const Spalten = [
      {
        Titel: 'Ansprechpartner',
        dataIndex: 'Benutzername',
        Schlüssel: 'Benutzername',
      }, {
        Titel: 'Mobiltelefonnummer',
        Datenindex: "mobil",
        Schlüssel: 'mobile',
      }, {
        Titel: 'Firmenname',
        Datenindex: "Firmenname",
        Schlüssel: 'Firmenname',
      }, {
        Titel: „Letzte aktive Zeit“,
        dataIndex: 'letzteOnlineZeit',
        Schlüssel: 'lastOnlineTime',
      }, {
        Titel: 'Stummschaltungsstatus',
        Datenindex: "Status",
        Schlüssel: 'Status',
      },
    ];
 
    zurückkehren (
      <div>
        <Formularlayout="inline" Stil={{marginBottom: '10px'}}>
          <FormItem label="Letzte aktive Zeit">
            <RangePicker-Stil = {{Breite: '255px'}}/>
          </FormItem>
          <FormItem label="Benutzer">
            <Input type="text" placeholder="Firmenname, Mobiltelefonnummer" style={{width: '155px'}}/>
          </FormItem>
          <FormItem label="Stummschaltungsstatus">
            <Standardwert auswählen="Alle" style={{width: '155px'}}>
              <Optionswert="Alle">Alle</Option>
              <Optionswert="Ja">Ja</Option>
              <Optionswert="Nein">Nein</Option>
            </Auswählen>
          </FormItem>
          <Button type="primary" style={{marginTop: '3px', marginRight: '3px'}}>Abfrage</Button>
          <Button style={{marginTop: '3px'}}>Zurücksetzen</Button>
        </Form>
        <Tabelle
          Spalten={Spalten}
        />
      </div>
    )
  }
}
 
Standard exportieren Form.create()(Benutzerverwaltung) 

Columns ist die API der Table-Komponente. Columns und Column-Komponenten verwenden dieselbe API:

dataIndex: Der Schlüssel, der den Spaltendaten im Datenelement entspricht und das verschachtelte Schreiben von abc unterstützt

Schlüssel: Der von React benötigte Schlüssel. Wenn ein eindeutiger Datenindex festgelegt wurde, kann dieses Attribut ignoriert werden.

2. Verwenden Sie getFieldDecorator(id, options) für die Formularinteraktion

1. Das Problem besteht nun darin, wie Daten für verschiedene Abfragebedingungen abgerufen werden können. Schreiben Sie daher zuerst den Code in render() neu und verwenden Sie getFieldDecorator für die bidirektionale Bindung mit dem folgenden Formular:

...
machen(){
    const {form} = diese.props;
    const {getFieldDecorator} = Formular;
...
    zurückkehren (
      <div>
        <Formular bei Übermittlung={this.handleQuery} layout="inline" style={{marginBottom: '10px'}}>
          <FormItem label="Letzte aktive Zeit">
            {getFieldDecorator('lastOnlineTime')(<RangePicker style={{width: '255px'}}/>)}
          </FormItem>
          <FormItem label="Benutzer">
            {getFieldDecorator('userQueryLike')(<Input type="text" placeholder="Firmenname oder Mobiltelefonnummer" style={{width: '155px'}}/>)}
          </FormItem>
          <FormItem label="Stummschaltungsstatus">
            {getFieldDecorator('status', {initialValue: "alle"})(
            <Stil auswählen={{width: '155px'}}>
              <Optionswert="0">Alle</Option>
              <Optionswert="1">Ja</Option>
              <Option value="2">Nein</Option>
            </Auswählen>)}
          </FormItem>
          <Button type="primary" htmlType="submit" style={{marginTop: '3px', marginRight: '3px'}}>Abfrage</Button>
          <Button style={{marginTop: '3px'}}>Zurücksetzen</Button>
        </Form>
        <Tabelle
          columns={columns} /*dataSource={(vom Modell erhaltene Daten)}*/
        />
      </div>
    )
}
... 

Parameter veranschaulichen Typ Standardwert
Ausweis Erforderliches eindeutiges Flag für die Eingabesteuerung. Unterstützt verschachteltes Schreiben. Schnur
options.getValueFromEvent Sie können onChange-Parameter (z. B. Ereignisse) in Kontrollwerte umwandeln Funktion(..args) Referenz
Optionen.Initialwert Der Anfangswert, der Typ und der optionale Wert des untergeordneten Knotens werden alle vom untergeordneten Knoten bestimmt (Hinweis: Da === verwendet wird, um festzustellen, ob es sich während der internen Überprüfung geändert hat, wird empfohlen, Variablen zum Zwischenspeichern der festzulegenden Werte zu verwenden, anstatt Literale direkt zu verwenden))
Optionen.normalisieren Konvertieren Sie den Standardwert in das Steuerelement Funktion (Wert, vorherigerWert, alleWerte): beliebig -
Optionen.Regeln Verifizierungsregeln, weitere Einzelheiten entnehmen Sie bitte der offiziellen Antd-Dokumentation Objekt[]
Optionen.Trigger Wann soll der Wert untergeordneter Knoten erfasst werden? Schnur 'beiÄnderung'
Optionen.validateFirst Wenn die Überprüfung einer Regel fehlschlägt, soll die Überprüfung der übrigen Regeln gestoppt werden? Boolescher Wert FALSCH
Optionen.validateTrigger Wann müssen die Werte untergeordneter Knoten überprüft werden? Zeichenfolge|Zeichenfolge[] 'beiÄnderung'
Optionen.valuePropName Das Wertattribut des untergeordneten Knotens, z. B. „checked“ für Switch Schnur 'Wert'

2. Dem Formular wird oben ein onSubmit-Ereignis zugewiesen und die handleQuery-Methode wird ausgeführt, wenn das Formular übermittelt wird:

...
Klasse UserManage erweitert React.Component {
  //Formularabfrage handleQuery = (e) => {
    wenn (e) e.preventDefault();
    const {dispatch, form} = diese.props;
    form.validateFields((err, fieldsValue) => {
      wenn (Fehler) zurückgeben;
      //Wert des Zeitbereichs abrufen const rangeValue = fieldsValue['lastOnlineTime'];
      const userQueryLike = FelderWert['userQueryLike'];
      //Abfragebedingungen abrufen const values ​​​​= {
        ...FelderWert,
        "letzteOnlinezeit": (Bereichswert und Bereichswert.Länge > 1) ?
          ([Bereichswert[0].format('JJJJ-MM-TT'), Bereichswert[1].format('JJJJ-MM-TT')]) : null,
        "userQueryLike": BenutzerQueryLike ? userQueryLike.trim() : BenutzerQueryLike,
      };
      versenden({
        Typ: "userManageModel/getUserList",
        Nutzlast: {
          Werte: Werte,
        }
      });
 
    });
  };
...
}
...

In dieser Methode wird form.validateFields aufgerufen, um eine Reihe von Eingabefeldwerten und Fehlern zu prüfen und abzurufen. Der Eingabeparameter fieldsValue ist der aus dem FormItem des Formulars abgerufene Wert. Anschließend wird mithilfe der Form von fieldsValue['lastOnlineTime'] der Wert eines einzelnen Eingabefelds abgerufen, indem dieser mit dem zuvor geschriebenen getFieldDecorator('lastOnlineTime') zugeordnet wird.

Zusammenfassend lässt sich sagen, dass Sie zur Implementierung der Formularfunktion mit Reacts Form Form.create(component) verwenden müssen, damit die umschlossene Komponente die Eigenschaft this.props.form hat, damit Sie die Methoden getFieldDecorator und validateFields des Formulars aufrufen können. Die ID in getFieldDecorator entspricht fieldsValue[''] in validateFields; und der dateIndex in columns entspricht dem Schlüsselnamen der vom Modell erhaltenen JSON-Datenzeichenfolge. Dies muss unterschieden werden.

Zusätzlich zu dieser Methode gibt es zwei weitere Möglichkeiten, den Wert des Eingabefelds abzurufen und dann zu übermitteln. Sie können diesen Artikel lesen: React ruft den Wert der Eingabe ab und übermittelt ihn auf zwei Arten

Zusammenfassen

Damit ist dieser Artikel darüber, wie React die Form-Komponente von Ant verwendet, um Formularfunktionen zu implementieren, abgeschlossen. Weitere Informationen dazu, wie React Form-Komponenten verwendet, um Formularinhalte zu implementieren, finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, Sie werden 123WORDPRESS.COM auch in Zukunft unterstützen!

Das könnte Sie auch interessieren:
  • React verwendet die Antd-Formularzuweisung, um den Betrieb des Popup-Fensters zu ändern
  • React antd realisiert dynamische Vergrößerung und Verkleinerung der Form

<<:  Detaillierte Erläuterung des Funktionsprinzips der Ausführungsanforderung von Nginx + PHP

>>:  Detaillierte Zusammenfassung von MySQL und verbindungsbezogenen Timeouts

Artikel empfehlen

WebWorker kapselt JavaScript-Sandbox-Details

Inhaltsverzeichnis 1. Szenario 2. Implementieren ...

Datenbankübergreifende Assoziationsabfragemethode in MySQL

Geschäftsszenario: Abfragen von Tabellen in versc...

Beispiel für die Verwendung einer Keep-Alive-Komponente in Vue

Problembeschreibung (was ist Keep-Alive) Keep-Ali...

Wissenspunkte zum Prinzip der MySQL-Join-Abfrage

Mysql Join-Abfrage 1. Grundlegende Konzepte Verbi...

So ändern Sie das Root-Passwort in einem Container mit Docker

1. Verwenden Sie den folgenden Befehl, um das SSH...

JS ES: Neue Funktion zur variablen Entkopplungszuweisung

Inhaltsverzeichnis 1. Entkoppelte Zuweisung von A...

Beispielcode für einen coolen Atemeffekt mit CSS3+JavaScript

Ein einfacher cooler Effekt, der mit CSS3-Animati...

Details zu MySQL-Zeittypen und -Modi

Inhaltsverzeichnis 1. MySQL-Zeittyp 2. Überprüfen...

Lernen Sie die Grundlagen der JavaScript-DOM-Operationen in einem Artikel

DOM-Konzepte DOM: Dokumentobjektmodell: Das Dokum...

Bootstrap 3.0-Lernunterlagen für Anfänger

Als ersten Artikel dieser Studiennotiz beginnen w...

Reiner CSS-Code zum Erzielen eines Drag-Effekts

Inhaltsverzeichnis 1. Beispiel für Drag-Effekt 2....

Detaillierte Analyse, wann Tomcat das Antwortdatagramm zurückschreibt

Es stellt sich die Frage Diese Frage kam auf, als...

MySQL-Tabellenfeld Zeiteinstellung Standardwert

Anwendungsszenario In der Datentabelle muss die A...