如何在超时函数中获取更新的useState()值?



我目前正在尝试将最新更新放入超时函数中。这意味着我希望将c更新为1,而不必使用useRef钩子之类的东西。

const [c, s] = useState<number>(0)
const f = () => {
s(1)
setTimeout(() => console.log(c), 600)
}
return (
<div
style={{ width: '100%', height: '100%', backgroundColor: 'black' }}
onMouseEnter={f}
>
test
</div>
)

没有引用,你可以尝试useEffect钩子:

const [c, setC] = useState<number>(0);
useEffect(() => {
setTimeout(() => {
console.log(c);
}, 600);
}, [c]);
const f = () => {
setC(1);
};
return <div onMouseEnter={f}>test</div>;

最新更新