Выбор ответа Middle Ref и DOM обновлено

Очистка в ref-колбэке

Вопрос

Что делает функция, возвращённая из ref-колбэка, в React 19?

<li ref={node => {
  itemsMap.set(id, node);
  return () => itemsMap.delete(id);
}}>{title}</li>

Попробуйте сами

Выберите вариант, и откроется разбор.

Показать ответ и разбор

Коротко

Правильный ответ: React вызовет её при отключении ref от узла. С React 19 ref-колбэк может вернуть функцию очистки, и React вызовет её при отключении ref, вместо старого вызова колбэка с null.

Варианты ответа

  1. Ничего: возвращаемое значение ref-колбэка игнорируется
  2. React вызовет её сразу после монтирования элемента
  3. Это вызовет ошибку типа: колбэк должен вернуть void
  4. React вызовет её при отключении ref от узлаправильный ответ

Разбор

С React 19 ref-колбэк может вернуть функцию очистки, и React вызовет её при отключении ref, вместо старого вызова колбэка с null. До React 19 возвращаемое значение игнорировалось. Сразу после монтирования очистка не вызывается. Ошибки нет, такая форма поддерживается официально.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.

Термины по теме