I\'m building a very primitive quiz app with ReactJS and I\'m having trouble updating the state of my Questions
component. Its behavior is it renders the correc
setState()
is not necessarily a synchronous operation:
setState()
does not immediately mutatethis.state
but creates a pending state transition. Accessingthis.state
aftThere is no guarantee of synchronous operation of calls to
setState
and calls may be batched for performance gains.
For this reason, this.state.questionNumber
may still hold the previous value here:
this.props.changeHeader("Question " + this.state.questionNumber)
Instead, use the callback function that is called once the state transition is complete:
this.setState({
questionNumber: this.state.questionNumber + 1
}, () => {
this.props.changeHeader("Question " + this.state.questionNumber)
})