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 ...

Implementierung der MySQL5.7 mysqldump-Sicherung und -Wiederherstellung

MySQL-Sicherung Kaltes Backup:停止服務進行備份,即停止數據庫的寫入H...

Der Unterschied zwischen schreibgeschützt und deaktiviert

Um es zusammenzufassen: „Nur lesen“ ist nur für Ei...

Allgemeine Linux-Befehle chmod zum Ändern der Dateiberechtigungen 777 und 754

Der folgende Befehl wird häufig verwendet: chmod ...

jQuery-Plugin zur Implementierung des Minesweeper-Spiels (1)

Dieser Artikel teilt den spezifischen Code des er...

Tabellen in HTML aufteilen und zusammenführen (colspan, rowspan)

Der Code demonstriert die horizontale Zusammenfüh...

MySQL-Transaktionsdetails

Inhaltsverzeichnis Einführung Vier Merkmale von T...

Weitergabe von Techniken für Farbkontrast und -harmonie im Web

Farbkontrast und Harmonie Unter kontrastierenden ...

Kombinieren von XML- und CSS-Stilen

student.xml <?xml version="1.0" enco...

JS-Prinzip der asynchronen Ausführung und Rückrufdetails

1. JS-Prinzip der asynchronen Ausführung Wir wiss...

So kapseln Sie die Rich-Text-Komponente von WangEditor in Angular

Die Rich-Text-Komponente ist eine sehr häufig ver...

JavaScript ermittelt, ob der Browser IE ist

Als Frontend-Entwickler komme ich an den Tücken d...

HTML+CSS zum Erstellen eines einfachen Fortschrittsbalkens

1. HTML-Code Code kopieren Der Code lautet wie fo...

Teilen Sie die 15 besten HTML/CSS-Design- und Entwicklungsframeworks

Professionelles Webdesign ist komplex und zeitint...