Kontrolliertes Eingabefeld

Beginner

This tutorial is from open-source community. Access the source code

Einführung

In diesem Lab werden wir lernen, wie man in React ein kontrolliertes Eingabefeld erstellt. Ein kontrolliertes Eingabefeld ist ein häufiges Muster, das zur Verwaltung von Formular-Eingabewerten in React-Anwendungen verwendet wird. Indem wir eine Callback-Funktion verwenden, um dem übergeordneten Komponenten von allen Wertaktualisierungen mitzuteilen, können wir sicherstellen, dass der Wert des Eingabefelds immer mit dem Zustand der übergeordneten Komponente synchron ist. In diesem Lab wird uns der Prozess der Erstellung und Verwendung eines kontrollierten Eingabefeldkomponenten in React geleiten.

Kontrolliertes Eingabefeld

index.html und script.js wurden bereits in der VM bereitgestellt. Im Allgemeinen müssen Sie nur Code in script.js und style.css hinzufügen.

Dieser Codeausschnitt stellt ein kontrolliertes <input>-Element bereit, das eine Callback-Funktion verwendet, um seine übergeordnete Komponente über alle Updates seines Werts zu informieren. So funktioniert es:

  • Der Wert des kontrollierten Eingabefelds wird durch die value-Eigenschaft bestimmt, die von der übergeordneten Komponente weitergegeben wird.
  • Alle Änderungen, die der Benutzer am Eingabefeld vornimmt, werden durch das onChange-Ereignis erfasst, das die onValueChange-Callback-Funktion auslöst und den neuen Wert an die übergeordnete Komponente zurücksendet.
  • Um den Wert des Eingabefelds zu aktualisieren, muss die übergeordnete Komponente die value-Eigenschaft aktualisieren, die sie an das kontrollierte Eingabekomponente weitergibt.

Hier ist ein Beispielimplementierung der ControlledInput-Komponente, gefolgt von einem Verwendungsexempel in einer Form-Komponente:

const ControlledInput = ({ value, onValueChange, ...rest }) => {
  return (
    <input
      value={value}
      onChange={({ target: { value } }) => onValueChange(value)}
      {...rest}
    />
  );
};

const Form = () => {
  const [value, setValue] = React.useState("");

  return (
    <ControlledInput
      type="text"
      placeholder="Fügen Sie hier etwas Text ein..."
      value={value}
      onValueChange={setValue}
    />
  );
};

ReactDOM.createRoot(document.getElementById("root")).render(<Form />);

Bitte klicken Sie auf 'Go Live' in der unteren rechten Ecke, um den Webdienst auf Port 8080 auszuführen. Anschließend können Sie die Registerkarte Web 8080 aktualisieren, um die Webseite anzuschauen.

Zusammenfassung

Herzlichen Glückwunsch! Sie haben das Lab zu kontrollierten Eingabefeldern abgeschlossen. Sie können in LabEx weitere Labs ausprobieren, um Ihre Fähigkeiten zu verbessern.