Heim > Web-Frontend > js-Tutorial > Wie behebe ich die Warnung „Unkontrollierte in kontrollierte Eingabekonvertierung' in ReactJS?

Wie behebe ich die Warnung „Unkontrollierte in kontrollierte Eingabekonvertierung' in ReactJS?

Patricia Arquette
Freigeben: 2024-10-25 23:17:28
Original
541 Leute haben es durchsucht

How to Fix the

Umgang mit Warnungen zur Konvertierung von unkontrollierten in kontrollierte Eingaben in ReactJS

ReactJS warnt Entwickler, wenn eine Komponente ein unkontrolliertes Eingabeelement in ein kontrolliertes übergeht. Dieser Fehler ist mit der folgenden Meldung verbunden:


Warnung: Eine Komponente ändert eine unkontrollierte Eingabe vom Typ „Text“ in „kontrolliert“. Eingabeelemente sollten nicht von unkontrolliert in kontrolliert wechseln (oder umgekehrt). Entscheiden Sie zwischen der Verwendung eines kontrollierten oder unkontrollierten Eingabeelements für die Lebensdauer der Komponente.


Die Ursache verstehen

Der Fehler tritt auf, wenn der Status einer Komponente ein Eingabefeld als unkontrolliert initialisiert (d. h. ohne einen kontrollierten Wertwert), aber später seinen Wert festlegt und ihn effektiv in eine kontrollierte Eingabe überführt.

Beispielcode

Bedenken Sie den folgenden Codeausschnitt:

<code class="javascript">constructor(props) {
  super(props);
  this.state = {
    fields: {}
  }
}

...

onChange(field, e){
  let fields = this.state.fields;
  fields[field] = e.target.value;
  this.setState({fields});
}

...

render() {
  return(
    <div className="form-group">
      <input
        value={this.state.fields["name"]}
        onChange={this.onChange.bind(this, "name")}
        type="text"
        refs="name"
        placeholder="Name *"
      />
    </div>
  )
}</code>
Nach dem Login kopieren

In diesem Beispiel ist der Status zunächst ein leeres Objekt, wodurch das Eingabefeld unkontrolliert wird. Wenn der Feldwert jedoch festgelegt ist, wird die Eingabe kontrolliert und verursacht die Warnung.

Mögliche Lösungen

Um das Problem zu beheben, ziehen Sie die folgenden Lösungen in Betracht:

  1. Feldwerte im Status initialisieren: Definieren Sie das Eingabefeld im Anfangsstatus mit einem Platzhalterwert. Zum Beispiel:
<code class="javascript">this.state = { fields: { name: '' } }</code>
Nach dem Login kopieren
  1. Kurzschlussauswertung verwenden: Legen Sie die Wertprop zur Verwendung der Kurzschlussauswertung fest, um undefinierte Werte zu verarbeiten. Zum Beispiel:
<code class="javascript">value={this.state.fields.name || ''}</code>
Nach dem Login kopieren

Durch die Implementierung dieser Lösungen können Sie sicherstellen, dass Ihre Eingabeelemente in einem konsistenten Zustand bleiben und so den unkontrollierten in einen kontrollierten Eingabekonvertierungsfehler vermeiden.

Das obige ist der detaillierte Inhalt vonWie behebe ich die Warnung „Unkontrollierte in kontrollierte Eingabekonvertierung' in ReactJS?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage