I'm new to React, I was told by a book that it is incorrect to use setState method as the example below:
... constructor(props) { super(props); this.state = { counter: 0, hasButtonBeenClicked: false } } render() { return ( <button onClick={ this.handleClick }> Click </button> ) } handleClick = () => { this.setState({ counter: this.state.counter + 1 }); this.setState({ hasButtonBeenClicked: this.state.counter > 0 }); } ... becuase React performs changes to state data asynchronously and may choose to group together several updates to improve performance.
I get the point, but since React performs changes asynchronously . there could be times and chances that the first setState method will get called first before the second setState method, it is just a matter of probability. But no matter how many times I tried, the second setState method always get called first, why?