Here is my code :
const {useState, useEffect} = React;
function App() {
let [count, setCount] = useState(0);
let [num, setNum] = useState(0);
useEffect(() => {
setCount((pre) => {
return pre + 1;
});
setNum(num + 1);
}, []);
return (
<p>
count:{count} num:{num}
</p>
);
}
ReactDOM.createRoot(document.querySelector("#app"))
.render(<React.StrictMode><App /></React.StrictMode>);
<script crossorigin src="https://unpkg.com/react@18/umd/react.development.js"></script>
<script crossorigin src="https://unpkg.com/react-dom@18/umd/react-dom.development.js"></script>
<div id="app"></div>
The result is : count:2 num:1! why?
In theory, num and count should be synchronous, I don't know what happend!
In dev mode, useEffect's callback executed twice.