Выбор ответа Middle Состояние и useState/useReducer обновлено
Апдейтер вперемешку со значением
Вопрос
count равен 0. Чему он будет равен после клика?
function handleClick() {
setCount(c => c + 1);
setCount(5);
setCount(c => c + 1);
}
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: 6. React обрабатывает очередь по порядку: c = c + 1 даёт 1, затем значение 5 заменяет результат, затем c = c + 1 даёт 6.
Варианты ответа
- 1
- 5
- 6правильный ответ
- 7
Разбор
React обрабатывает очередь по порядку: c => c + 1 даёт 1, затем значение 5 заменяет результат, затем c => c + 1 даёт 6. Ответ 1 получился бы, если бы считался только первый вызов. 5 получилось бы без последнего апдейтера. 7 возникло бы, если бы апдейтеры применялись к значению 5 дважды.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.