如何在超时函数里面获取最新的useState()值?

问题描述 投票:0回答:1

我目前正试图在一个超时函数中获取最新的更新。这意味着我想让 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>
    )
javascript reactjs asynchronous react-hooks
1个回答
2
投票

没有参考资料,你可以试试 useEffect 钩。

const [c, setC] = useState < number > 0;

useEffect(() => {
  setTimeout(() => {
    console.log(c);
  }, 600);
}, [c]);

const f = () => {
  setC(1);
};

return <div onMouseEnter={f}>test</div>;
© www.soinside.com 2019 - 2024. All rights reserved.