Согласно объяснению в документах:
setState() не сразу мутирует this.state, но создает ожидающий переход состояния. Доступ к this.state после вызова этого метода может потенциально вернуть существующее значение.
Нет гарантии синхронной работы вызовов setState, и вызовы могут быть собраны для повышения производительности.
Так как setState()
является асинхронным, и нет гарантии его синхронной производительности. Существует ли альтернатива setState()
которая является синхронной.
Например
//initial value of cnt:0
this.setState({cnt:this.state.cnt+1})
alert(this.state.cnt); //alert value:0
Так как значение alert
- это предыдущее значение, то какова альтернатива, которая даст alert value:1
с помощью setState()
.
В Stackoverflow есть несколько вопросов, которые похожи на этот вопрос, но нет, где я могу найти правильный ответ.