react+antd.3x implementiert IP-Eingabefeld

react+antd.3x implementiert IP-Eingabefeld

In diesem Artikel wird der spezifische Code von react+antd.3x zur Implementierung des IP-Eingabefelds zu Ihrer Information freigegeben. Der spezifische Inhalt ist wie folgt

Die Erscheinungsform ist wie folgt:

js + html

/**
 * zks 2021 10 26
 * IP-Eingabefeld zum Erstellen und Ändern virtueller Subnetze * Verwendung: Siehe benutzerdefinierte Formularsteuerelemente von antd-form.
 */
importiere React von „react“;
importiere { Input} von 'antd';
Stile aus „./index.less“ importieren
Klasse IpInput erweitert React.Component{
    Konstruktor(){
        super();
        diese._refs = {
          refip_0: React.createRef(),
          refip_1: React.createRef(),
          refip_2: React.createRef(),
          refip_3: React.createRef()
        };
    }
    handleNumberChange = (e,Typ) => {
        // Stellen Sie sicher, dass der Mindestwert 0 ist.
        const number = parseInt(e.target.value || 0, 10);
        wenn (istNaN(Zahl)) {
          zurückkehren;
        }
        lass Obj = {}
        Obj[`${type}`] = Zahl
        dies.triggerChange(Obj);
    };
    Triggeränderung = geänderterWert => {
        const { bei Änderung, Wert } = this.props;
        wenn (beiÄnderung) {
          beiÄnderung({
            ...Wert,
            ...geänderterWert,
          });
        }
      };
    turnIpPOS = (e,Typ)=>{
        lass self = dies;
         //Der linke Pfeil springt nach links und tut nichts if(e.keyCode === 37) {
          wenn(Typ === 0) {} sonst {
            self._refs[`refip_${type-1}`].current.focus();
          }
        }
        //Der rechte Pfeil, die Eingabetaste, die Leertaste und der Doppelpunkt springen alle nach rechts und der rechte tut nichts, wenn (e.keyCode === 39 || e.keyCode === 13 || e.keyCode === 32 || e.keyCode === 190) {
           wenn(Typ === 3) {} sonst {
            self._refs[`refip_${type+1}`].current.focus();
           }
        }
    }
    machen(){
        const { Wert } = this.props;
        zurückkehren (
            <Input.Group kompakter Klassenname = {styles.inputGroup}>
              <Eingabestil = {{ Breite: '24 %' }} Klassenname = {Stile.self_input} Ref = {this._refs.refip_0} Wert = {Wert.ip_0} Maximallänge = {3} Bei Änderung = {(e) => {this.handleNumberChange(e,'ip_0')}} Bei Schlüsselerhöhung = {(e) =>this.turnIpPOS(e,0)}/>
              <span className = {styles.dot} ></span>
              <Eingabestil = {{ Breite: '24 %' }} Klassenname = {Stile.self_input} Ref = {this._refs.refip_1} Wert = {Wert.ip_1} Maximallänge = {3} Bei Änderung = {(e) => {this.handleNumberChange(e,'ip_1')}} Bei Tastendruck = {(e) =>this.turnIpPOS(e,1)}/>
              <span Klassenname = {styles.dot}></span>
              <Eingabestil = {{ Breite: '24 %' }} Klassenname = {Stile.self_input} Ref = {this._refs.refip_2} Wert = {Wert.ip_2} Maximallänge = {3} Bei Änderung = {(e) => {this.handleNumberChange(e,'ip_2')}} Bei Tastendruck = {(e) =>this.turnIpPOS(e,2)}/>
              <span Klassenname = {styles.dot}></span>
              <Eingabestil = {{ Breite: '24 %' }} Klassenname = {Stile.self_input} Ref = {this._refs.refip_3} Wert = {Wert.ip_3} Maximallänge = {3} Bei Änderung = {(e) => {this.handleNumberChange(e,'ip_3')}} Bei Tastendruck = {(e) =>this.turnIpPOS(e,3)}/>
            </Eingabe.Gruppe>
        )
    }
   
}
Standard-IpInput exportieren;

CSS

.Eingabegruppe {
  Rand: 1px durchgezogen #d9d9d9;
  Rahmenradius: 2px;
  Übergang: alle 0,3 s;
  &:schweben {
    Rahmenfarbe: #45bbff;
    Rahmenbreite rechts: 1px !wichtig;
    Umriss: 0;
    Kastenschatten: 0 0 0 2px rgba (29, 165, 255, 0,2);
  }
  Textausrichtung: zentriert;
  .punkt {
    Breite: 3px;
    Höhe: 3px;
    Rand: 1px durchgezogen #000;
    Rahmenradius: 3px;
    Hintergrundfarbe: #000;
    Deckkraft: 0,5;
    Z-Index: 9;
    Position: relativ;
    oben: 21px;
  }
}
.self_input {
  Rand: keiner;
  Umriss: 0px;
  &:schweben {
    Kastenschatten: keiner;
  }
  &::Auswahl {
    Kastenschatten: keiner;
  }
  &:Fokus {
    Kastenschatten: keiner;
  }
}

Anwendung

IPInput importieren aus '../../public/IpInput';
<FormItem label="Subnetz-Gateway" {...formItemLayout}>
                {getFieldDecorator('Preis', {
                  Anfangswert: { ip_0: 255, ip_1: 235, ip_2: 255, ip_3: 255 },
                  Regeln: [{ validator: this.checkIp }],
                })(<IPInput />)}
 </FormItem>

Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, er wird für jedermanns Studium hilfreich sein. Ich hoffe auch, dass jeder 123WORDPRESS.COM unterstützen wird.

Das könnte Sie auch interessieren:
  • React-Beispiel zum Abrufen des Werts aus dem Eingabefeld
  • Lösen Sie das Problem, dass die React-Native-Softtastatur auftaucht und das Eingabefeld blockiert
  • So lösen Sie das Problem, dass das Eingabefeld in React Android durch die mobile Tastatur blockiert wird
  • React-Native erstellt Implementierungscode für eine Texteingabefeldkomponente

<<:  Tutorial zum Erstellen einer HTML-Webseite. Verwenden Sie Iframe-Tags mit Bedacht.

>>:  Wie viele Daten können in einer MySQL-Tabelle gespeichert werden?

Artikel empfehlen

Detaillierte Anweisungen zum Download und Installationsprozess von MySQL 5.7.18

MySql herunterladen 1. Öffnen Sie die offizielle ...

Der Unterschied zwischen method=post/get in Form

Das Formular bietet zwei Möglichkeiten zur Datenüb...

Der Unterschied zwischen shtml und html

Shtml und asp sind ähnlich. In Dateien mit dem Nam...

Zusammenfassung einiger effizienter magischer Operatoren in JS

JavaScript veröffentlicht mittlerweile jedes Jahr...

Das WeChat-Applet realisiert den Neun-Quadrat-Rastereffekt

In diesem Artikel wird der spezifische Code für d...

Beispiele für die Verwendung von React Ref

Inhaltsverzeichnis Was ist ref So verwenden Sie r...

Installation und Bereitstellung des MySQL Routers

Inhaltsverzeichnis 01 Einführung in MySQL Router ...

CentOS 8-Installationsdiagramm (superdetailliertes Tutorial)

CentOS 8 ist offiziell veröffentlicht! CentOS ent...