如何解决如何在反应钩子上使用`setState`回调
您需要使用useEffect
钩子来实现这一点。
const [counter, setCounter] = useState(0);
const doSomething = () => {
setCounter(123);
}
useEffect(() => {
console.log('Do something after counter has changed', counter);
}, [counter]);
如果您希望 *
import React, { useEffect, useRef } from 'react';
const [counter, setCounter] = useState(0);
const didMount = useRef(false);
const doSomething = () => {
setCounter(123);
}
useEffect(() => {
// Return early, if this is the first render:
if ( !didMount.current ) {
return didMount.current = true;
}
// Paste code to be executed on subsequent renders:
console.log('Do something after counter has changed', counter);
}, [counter]);
解决方法
React 钩子useState
用于设置组件状态。但是如何使用钩子来替换回调,如下面的代码:
setState(
{ name: "Michael" },() => console.log(this.state)
);
我想在状态更新后做点什么。
我知道我可以useEffect
用来做额外的事情,但我必须检查状态先前的值,这需要一些代码。我正在寻找一个可以与useState
钩子一起使用的简单解决方案。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。