如何在React钩子上使用`setState`回调

问题描述

您需要使用useEffect钩子来实现此目的。

const [counter, setCounter] = useState(0);

const doSomething = () => {
  setCounter(123);
}

useEffect(() => {
   console.log('Do something after counter has changed', counter);
}, [counter]);

解决方法

React钩子介绍了useState用于设置组件状态的方法。但是我如何使用钩子来代替如下代码的回调:

setState(
  { name: "Michael" },() => console.log(this.state)
);

我想在状态更新后做一些事情。

我知道我可以useEffect用来做其他事情,但是我必须检查状态以前的值,这需要一个位代码。我正在寻找可以与useState钩子一起使用的简单解决方案。