React · Senior · Frage 17 von 75

Was macht dieser Hook?

const useHandler = (f) => {
  const ref = useRef(f);
  ref.current = f;
  return useCallback((...args) => ref.current(...args), []);
};
Antwort zeigen

Richtige Antwort: Er gibt eine stabile Funktion zurück, die immer die neueste Version von f aufruft

Erklärung

Die Callback-Referenz ist stabil (praktisch für memo-Kinder und Effekt-Abhängigkeiten), sieht innen aber immer frische Props und frischen Zustand. Einschränkung: ref.current beim Rendern zu schreiben verletzt formal die Reinheit des Renderns; React bietet dafür useEffectEvent, und in Effekten würde man die Ref in useLayoutEffect aktualisieren.

Zum Weiterlesen

Fehler in der Frage

React · Senior · Frage 17

Teste dich selbst

Mach den Test React · Senior: Fragen und Antworten werden gemischt, und am Ende wartet eine Übersicht der Fehler.

Diesen Test machen