Heim > Web-Frontend > js-Tutorial > Hauptteil

Wie fokussiere ich Eingabefelder in React nach dem Rendern?

Patricia Arquette
Freigeben: 2024-11-02 15:20:02
Original
956 Leute haben es durchsucht

How to Focus Input Fields in React After Rendering?

Fokussieren von Eingabefeldern nach dem Rendern in React

Das Manipulieren von Elementen nach ihrem ersten Rendern ist ein häufiger Bedarf in der Front-End-Entwicklung. Um dies in React für Eingabefelder zu erreichen, muss der Fokus festgelegt werden, um nahtlose Benutzerinteraktionen sicherzustellen.

Ein in der Dokumentation erwähnter Ansatz ist die Verwendung von Refs. Dazu gehört die Zuweisung eines Ref-Attributs zum Eingabefeld innerhalb der Renderfunktion, z. B. ref="nameInput". Um die Eingabe zu fokussieren, können Sie dann this.refs.nameInput.getInputDOMNode().focus(); aufrufen. Dies funktioniert jedoch möglicherweise nicht immer wie erwartet.

Sie haben beispielsweise versucht, this.refs.nameInput.getInputDOMNode().focus(); aufzurufen. innerhalb der Lebenszyklusmethode ComponentDidMount(). Dies wird jedoch nicht funktionieren, da die DOM-Knoten zu diesem Zeitpunkt noch nicht verfügbar sind.

Stattdessen sollte der Fokus gesetzt werden, nachdem das DOM gerendert wurde. Eine Möglichkeit hierfür besteht darin, eine Funktion für die Fokusoperation zu erstellen und diese über die Lebenszyklusmethode „componentDidUpdate()“ aufzurufen. Hier ist ein Beispiel:

<code class="javascript">class MyComponent extends React.Component {
  focusInput() {
    this.inputElement.focus();
  }

  componentDidUpdate() {
    this.focusInput();
  }

  render() {
    return <input ref={el => this.inputElement = el} />;
  }
}</code>
Nach dem Login kopieren

Alternativ können Sie die AutoFocus-Requisite nutzen:

<code class="javascript"><input autoFocus name="..." /></code>
Nach dem Login kopieren

Dadurch wird sichergestellt, dass die Eingabe beim Montieren automatisch den Fokus erhält. Beachten Sie die Großschreibung der AutoFocus-Requisite in JSX.

Das obige ist der detaillierte Inhalt vonWie fokussiere ich Eingabefelder in React nach dem Rendern?. 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
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!