问题遇到的现象和发生背景
我通过查阅资料了解到setState只有在setTimeout或者原生事件里才会同步执行,我测试后在类组件里确实是这样,而在函数组件里就不行了,下面代码打印1和0。在类里面打印1,函数组件打印0
我想在函数组件useState中实现和this.setState的第二个回调参数一样的效果,希望可以set后立刻能读取最新的state,有什么方法呢
问题相关代码,请勿粘贴截图
```javascript
import { useEffect, useState, Component } from "react";
class Demo extends Component {
state = {
num: 0,
};
componentDidMount() {
this.setState({ num: num + 1 });
setTimeout(() => {
console.log(this.state.num);
});
}
render() {
return null;
}
}
const HookDemo = () => {
const [num, set] = useState(0);
useEffect(() => {
set(num + 1);
setTimeout(() => {
console.log(num);
});
}, []);
return (
<>
<Demo />
</>
);
};
export default HookDemo;
```