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

MySQL Series 7 MySQL-Speicher-Engine

1. MyISAM-Speicher-Engine Mangel: Keine Unterstüt...

So fügen Sie Tastenkombinationen in Xshell hinzu

Als nützlicher Terminalemulator wird Xshell häufi...

HTML Mehrere spezielle Trennlinieneffekte

1. Grundlinien 2. Spezialeffekte (die Effekte sin...

Detaillierte Schritte zur Installation von MySQL in Win

In diesem Artikel werden die detaillierten Schrit...

So verbessern Sie die MySQL Limit-Abfrageleistung

Bei MySQL-Datenbankoperationen hoffen wir immer, ...

Probleme und Lösungen für MYSQL5.7.17-Verbindungsfehler unter MAC

Das Problem, dass MYSQL5.7.17 unter MAC keine Ver...

Details zum Prototypmodus des Javascript-Entwurfsmusters

Inhaltsverzeichnis 1. Prototyp-Modus Beispiel 1 B...

Verwenden von Vue zum Implementieren einer Timerfunktion

In diesem Artikelbeispiel wird der spezifische Co...