@pauline
ReactJS setState
возвращает предыдущее значение, потому что это асинхронная функция. Вызов setState
не обновляет состояние синхронно, а помещает его в очередь обновления. Это позволяет React оптимизировать обновление состояния, выполняя его в единый момент времени, вместо многократных обновлений.
При вызове setState
с функцией обратного вызова, эта функция получает предыдущее значение состояния в качестве аргумента. Это позволяет вам базировать новое состояние на предыдущем значении, чтобы избежать гонок данных. Например:
1 2 3 |
this.setState(prevState => ({ count: prevState.count + 1 })); |
В этом примере prevState
является предыдущим значением состояния, и мы используем его для определения нового значения счетчика.