Выбор ответа 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.
Варианты ответа
- Ничего: возвращаемое значение ref-колбэка игнорируется
- React вызовет её сразу после монтирования элемента
- Это вызовет ошибку типа: колбэк должен вернуть
void - React вызовет её при отключении ref от узлаправильный ответ
Разбор
С React 19 ref-колбэк может вернуть функцию очистки, и React вызовет её при отключении ref, вместо старого вызова колбэка с null. До React 19 возвращаемое значение игнорировалось. Сразу после монтирования очистка не вызывается. Ошибки нет, такая форма поддерживается официально.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.