Функция для обновления состояния вызывается асинхронно, поэтому обновленное состояние не будет немедленно отражено.
Вместо этого вы можете выполнить действие при изменении состояния, и для этого у нас есть useEffect
hook .
import React, { useState, useEffect } from "react";
import "./styles.css";
export default function App() {
const [index, setIndex] = useState(0);
function increment() {
setIndex(prevState => prevState + 1);
}
useEffect(() => {
alert(index);
}, [index]);
return (
<div className="App">
<div>{index}</div>
<button onClick={() => increment()}>Increment</button>
</div>
);
}
Я обновил ваши коды и коробки здесь