„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > Wie fokussiere ich ein Eingabefeld in React nach dem Rendern?

Wie fokussiere ich ein Eingabefeld in React nach dem Rendern?

Veröffentlicht am 19.11.2024
Durchsuche:900

How to Focus an Input Field in React After Rendering?

Fokussieren eines Eingabefelds in React nach dem Rendern

In React kann das Setzen des Fokus auf ein Eingabefeld nach dem Rendern durch verschiedene Methoden erreicht werden .

Ein Ansatz besteht darin, Refs zu verwenden, wie in der Dokumentation vorgeschlagen. Indem Sie dem Eingabefeld innerhalb der Renderfunktion einen Verweis zuweisen (z. B. „nameInput“), können Sie auf seinen DOM-Knoten zugreifen und die Fokusmethode manuell aufrufen. Es ist jedoch wichtig zu verstehen, wo und wann diese Funktion aufgerufen werden muss.

Aufrufen der Fokusfunktion

Der einfachste Ort zum Aufrufen der Fokusfunktion ist die Lebenszyklusmethode „componentDidMount“ der Komponente . Dadurch wird sichergestellt, dass der Fokus gesetzt wird, nachdem die Komponente im DOM gemountet wurde. Der Code würde so aussehen:

import React, { useRef, useEffect } from "react";

const MyComponent = () => {
  const nameInputRef = useRef();

  useEffect(() => {
    if (nameInputRef.current) {
      nameInputRef.current.focus();
    }
  }, []);

  return (
    
  );
};

export default MyComponent;

Autofocus Option

Alternativ können Sie die von React bereitgestellte AutoFocus-Requisite verwenden. Indem Sie diese Requisite im Eingabefeld auf „true“ setzen, erhält die Komponente beim Mounten automatisch den Fokus.

return (
  
);

Beachten Sie, dass in JSX die Eigenschaft autoFocus (mit einem großen F) lautet, im Gegensatz zum HTML-Attribut, bei dem die Groß-/Kleinschreibung nicht berücksichtigt wird.

Neuestes Tutorial Mehr>

Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.

Copyright© 2022 湘ICP备2022001581号-3