Выбор ответа Middle Состояние и useState/useReducer обновлено
Стабильность dispatch
Вопрос
Какое утверждение о функциях setState и dispatch верно?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: Их идентичность стабильна, в зависимостях их можно не указывать. React гарантирует, что функция обновления из useState и dispatch из useReducer не меняются между рендерами, поэтому оборачивать их не нужно, а линтер разрешает не включать их в зависимости.
Варианты ответа
- Создаются заново на каждом рендере, их оборачивают в
useCallback - Их идентичность стабильна, в зависимостях их можно не указыватьправильный ответ
- Они стабильны в продакшене, а в dev пересоздаются StrictMode
- Стабилен
dispatch, аsetStateменяется при каждом обновлении
Разбор
React гарантирует, что функция обновления из useState и dispatch из useReducer не меняются между рендерами, поэтому оборачивать их не нужно, а линтер разрешает не включать их в зависимости. Режим сборки на это не влияет, и гарантия одинакова для обеих функций.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.