Unkontrollierte Komponenten in React sind solche, in denen Formaten vom DOM selbst behandelt werden, anstatt vom Zustand der Komponente zu verwalten. Um eine unkontrollierte Komponente zu erstellen, befolgen Sie die folgenden Schritte:
Verwenden Sie die defaultValue
-Prop : Anstatt value
zu verwenden, um den Anfangswert eines Formularelements (das ihn kontrolliert zu machen) festlegen, verwenden Sie defaultValue
. Zum Beispiel würden Sie für ein Eingabefeld tun:
<code class="jsx"><input type="text" defaultvalue="Initial Value"></code>
Zugriff auf Daten über Refs : Da die Daten nicht vom Status von React verwaltet werden, müssen Sie bei Bedarf auf den aktuellen Wert zugreifen. Sie verwenden das ref
-System von React, um einen Verweis auf den DOM -Knoten zu erstellen. So machst du es:
<code class="jsx">class UncontrolledForm extends React.Component { constructor(props) { super(props); this.inputRef = React.createRef(); } handleSubmit = (event) => { event.preventDefault(); console.log('Input Value:', this.inputRef.current.value); } render() { return ( <form onsubmit="{this.handleSubmit}"> <input type="text" defaultvalue="Initial Value" ref="{this.inputRef}"> <button type="submit">Submit</button> </form> ); } }</code>
Wenn Sie diese Schritte ausführen, können Sie eine unkontrollierte Komponente in React erstellen, in der die Formulardaten direkt vom DOM behandelt werden.
Die Verwendung unkontrollierter Komponenten in React -Anwendungen ist mit mehreren Vorteilen verbunden:
Um auf den Wert einer unkontrollierten Komponente in React zugreifen zu können, verwenden Sie normalerweise das ref
-System. So können Sie es tun:
Erstellen Sie einen Ref : Erstellen Sie in Ihrer Komponente einen Ref mit React.createRef()
oder dem useRef
-Hook in funktionalen Komponenten.
<code class="jsx">// In a class component constructor(props) { super(props); this.inputRef = React.createRef(); } // In a functional component const inputRef = useRef(null);</code>
Fügen Sie den Ref an das DOM -Element an : Übergeben Sie den ref
, wenn Sie Ihr Formularelement rendern.
<code class="jsx">// Class component <input type="text" defaultvalue="Initial Value" ref="{this.inputRef}"> // Functional component <input type="text" defaultvalue="Initial Value" ref="{inputRef}"></code>
Zugriff auf den Wert : Sie können bei Bedarf auf den Wert der unkontrollierten Komponente zugreifen, z. B. bei der Einreichung von Formular oder einem anderen Ereignis. Verwenden Sie ref.current.value
, um den aktuellen Wert zu erhalten.
<code class="jsx">// In a class component handleSubmit = (event) => { event.preventDefault(); console.log('Input Value:', this.inputRef.current.value); } // In a functional component const handleSubmit = (event) => { event.preventDefault(); console.log('Input Value:', inputRef.current.value); }</code>
Durch die Ausführung dieser Schritte können Sie in React effektiv auf den Wert einer unkontrollierten Komponente zugreifen.
Die Wahl zwischen kontrollierten und unkontrollierten Komponenten hängt von den spezifischen Bedürfnissen und Komplexität Ihres Projekts ab. Hier sind einige Szenarien, in denen Sie möglicherweise unkontrollierte Komponenten bevorzugen:
Wenn Sie im Allgemeinen mehr Kontrolle über Formulardaten und ihre Validierung benötigen, sind kontrollierte Komponenten die bessere Wahl. Für einfachere oder leistungskritische Szenarien können unkontrollierte Komponenten jedoch gut passen.
Das obige ist der detaillierte Inhalt vonWie erstellen Sie in React unkontrollierte Komponenten?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!