React · Senior · Запитання 17 з 75

Що робить цей хук?

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

Пояснення

Посилання на колбек стабільне (зручно для memo-дітей і залежностей ефектів), але всередині завжди свіжі props і state. Нюанс: запис ref.current під час рендеру формально порушує чистоту рендеру; React для цього завдання пропонує useEffectEvent, а всередині ефектів - оновлювати ref у useLayoutEffect.

Де почитати

Помилка в запитанні

React · Senior · запитання 17

Перевірте себе

Пройдіть тест React · Senior: запитання й варіанти перемішуються, а наприкінці - розбір помилок.

Пройти цей тест