Выбор ответа Middle Состояние и useState/useReducer обновлено

Стабильность dispatch

Вопрос

Какое утверждение о функциях setState и dispatch верно?

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

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

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

Коротко

Правильный ответ: Их идентичность стабильна, в зависимостях их можно не указывать. React гарантирует, что функция обновления из useState и dispatch из useReducer не меняются между рендерами, поэтому оборачивать их не нужно, а линтер разрешает не включать их в зависимости.

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

  1. Создаются заново на каждом рендере, их оборачивают в useCallback
  2. Их идентичность стабильна, в зависимостях их можно не указыватьправильный ответ
  3. Они стабильны в продакшене, а в dev пересоздаются StrictMode
  4. Стабилен dispatch, а setState меняется при каждом обновлении

Разбор

React гарантирует, что функция обновления из useState и dispatch из useReducer не меняются между рендерами, поэтому оборачивать их не нужно, а линтер разрешает не включать их в зависимости. Режим сборки на это не влияет, и гарантия одинакова для обеих функций.

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

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