useState の setter で値を更新しても即時 state に反映されるわけではないので、更新された state を使って別の処理を行いたい時などで意図しない動作になってしまうことがあります。 🐞 function Counter({ initCount }) { const [count, setCount] = useState(initCount); const [square, setSquare] = useState(initCount * initCount); const updateSquare = () => { setSquare( count * count ); } const onCountup = () => { setCount( count + 1 ); // ここではまだ count は更新されているとは限らない updateSquare()