Вот пример кода:
function App() {
const [count, setCount] = useState(0);
const printCount = () =>{
console.log(count);
};
const incCount = () => {
setCount(count + 1);
printCount();
};
return (
<div className="App">
<button onClick={() => { incCount(); }}>Inc count</button>
<div>{count}</div>
</div>
);
}
При нажатии на кнопку "Inc count" вызывается метод incCount в которой увеличивается значение count и после сразу вызывается метод printCount который выводит значение count в консоль. Так вот, при нажатии значение count увеличилось и стало равно "1", но в консоли выводится значение "0", то есть старое значение. Как будто методы incCount и printCount работают асинхронно и incCount не успевает изменить значение перед вызовом printCount. Как вызвать несколько методов подряд и при этом быть уверенным что они будут работать с обновленным state?