A state variable's value never changes within a render even any code is asynchronous. The state is a snapshot that is associated with that render only.
This might be a problem sometime since react waits until all code in an event handler is run before processing state updates. If we want to update a state variable two times before a render instead of doing `setNumber(number + 1)` we might instead do `setNumber(n => n + 1)`.