У меня есть вопрос по поводу устаревания.
Код:
import React, { useState } from "react";
export default function App() {
const [flag, setFlag] = useState(false);
const [count, setCount] = useState(0);
if (!flag) {
console.log("before", count);
setCount(count => count + 2);
setCount(count => count + 3);
setCount(count => count + 1);
setFlag(true);
console.log("after", count);
}
return (
<div>
<p>Render: {flag + ""}</p>
<p>Render: {count}</p>
</div>
);
}
Вывод:
Render: true
Render: 6
Здесь я установил setCount закрытия устаревания на
setCount(count => count + 2);
setCount(count => count + 3);
setCount(count => count + 1);
Но в консоли я получаю
before 0
after 0
, где я ожидаю получить
before 0
after 6
Можете ли вы объяснить, почему в журнале консоли счетчик по-прежнему равен 0?
Демонстрация здесь: https://codesandbox.io/s/crazy-joliot-xnmrp
Спасибо!