Вы можете сделать это несколькими способами:
1) Сделайте два звонка на setState
. React будет пакетировать любые одновременные вызовы на setState
в одно пакетное обновление, поэтому что-то вроде этого совершенно нормально:
this.setState( prevState => ({
score: prevState.score + 10,
rightAnswers: prevState.rightAnswers + 1
}));
setTimeout( () => {
this.setState( prevState => ({
currentQuestion: prevState.currentQuestion + 1
}));
}, 2000);
2) Вы можете использовать обратный вызов setState
для обновления состояния после , когда ваш первый вызов завершен:
this.setState(prevState => ({
score: prevState.score + 10,
rightAnswers: prevState.rightAnswers + 1
}), () => {
setTimeout( () => {
this.setState( prevState => ({
currentQuestion: prevState.currentQuestion + 1
}));
}, 2000);
});