javascript - 如何在超时函数中获取更新的 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>;
推荐阅读
- javascript - Amazon Connect 出站 CCP 软件电话号码预填充
- python - 将数据添加到 Django 数据库中的多对多关系
- mocha.js - Allure 测试报告未获取执行测试的正确设备名称
- python - Python中有没有办法获得以下输出?
- bazel - bazel如何选择python版本?
- c# - 复制 Excel 工作表的最有效方法是什么?
- python - 如何在flask\jinja 环境中将数据传递给javascript?
- blogger - 通过没有 Javascript 的背景图像的 Blogger 特色图像
- windows - 默认 Windows 缩放到 150%?
- python - 为什么这个参数列表在 Python 中不会改变?