So erstellen Sie eine kontrollierte Eingabe mit leerer Vorgabe in React 15

8

Ich habe ein Problem mit einer Texteingabe, die ich kontrollieren möchte, aber es muss einen leeren Wert unterstützen. Hier ist meine Komponente:

%Vor%

Wenn diese Datei zum ersten Mal geladen wird, wird props.value normalerweise (aber nicht immer) auf '' gesetzt. Dies macht React 15 unzufrieden, da value = '' den Wert fallen lässt, sodass React denkt, dass es eine unkontrollierte Eingabe ist, obwohl es einen onChange hat.

Die Komponente funktioniert, aber ich mag es nicht, diese Warnung in der Konsole zu erhalten:

  

Warnung: FormControl ändert eine kontrollierte Eingabe vom Typ text to be   unkontrolliert. Eingabeelemente sollten nicht von kontrolliert zu wechseln   unkontrolliert (oder umgekehrt). Entscheiden Sie zwischen der Verwendung eines kontrollierten oder   unkontrolliertes Eingabeelement für die Lebensdauer des Bauteils. Mehr   info: Ссылка

Das funktionierte in 0.14.x ohne Warnungen, aber jetzt scheint es nicht so zu sein. Wie reinige ich es, um die Funktionalität zu behalten, aber die Warnung loszuwerden?

    
Kelly Keller-Heikkila 11.05.2016, 23:50
quelle

1 Antwort

10

Stellen Sie sicher, dass this.state.value beim Mount nicht undefiniert ist. Sie können dies in Ihrem Konstruktor tun, indem Sie this.state = {value: props.value || ''}; oder props.value als erforderliche Eigenschaft festlegen.

    
gurch101 12.05.2016, 01:26
quelle

Tags und Links