@GreenMan1899

Как работает setState?

Не могу найти такую информацию по работе setState: поля объекта state внутри setState обновляются асинхронно между собой или нет? И если вызвать изменение например одного и того же поля счетчика counter на +1 внутри одного setState, то будут ли они инкрементироваться асинхронно?

5cc0eb5b4e5ad765945571.jpeg
  • Вопрос задан
  • 456 просмотров
Решения вопроса 1
rockon404
@rockon404 Куратор тега React
Frontend Developer
Дублирующиеся свойства в литерале объекта переопределяют друг друга. В созданный объект попадает значение последнего. Пример.

Поэтому объект, возвращаемый вызовом функции:
prevState => ({
  counter: prevState.counter + 1,
  counter: prevState.counter + 1,
})

при prevState.counter === 0, будет создаваться как:
{
  counter: 0 + 1,
  counter: 0 + 1,  // результат этого выражения попадет в созданный объект
}

и на выходе получится объект:
{ counter: 1 }
Он и будет подмешан в новый объект состояния.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы