Get Mystery Box with random crypto!

Для чего в setState() передается функция? setState() - это ас | Тостер

Для чего в setState() передается функция?

setState() - это асинхронная операция. React откладывает обновление состояния по причинам производительности, поэтому состояние может обновиться не сразу после вызова setState(). Это означает, что вам не следует полагаться на текущее состояние при вызове setState().

Решение проблемы - передача в setState() функции с предыдущим состоянием в качестве аргумента. Это позволяет избежать проблем, связанных с получением старого состояния из-за асинхронной природы setState().
Допустим, начальным значением count является 0. Несмотря на три последовательных вызова операции по увеличению значения, count равняется 1:

// пусть this.state.count === 0
this.setState({ count: this.state.count + 1 })
this.setState({ count: this.state.count + 1 })
// this.state.count === 1, а не 2

Если мы передадим функцию в setState() значение count увеличится корректно:

this.setState((prevState, props) => ({
count: prevState.count + props.increment
}))
// this.state.count === 2

#react