用户12771345
React useEffect 中闭包捕获旧值导致定时器逻辑错误的排查与修复
原创
关注作者
腾讯云
开发者社区
文档
建议反馈
控制台
登录/注册
首页
学习
活动
专区
圈层
工具
MCP广场
文章/答案/技术大牛
搜索
搜索
关闭
发布
用户12771345
社区首页
>
专栏
>
React useEffect 中闭包捕获旧值导致定时器逻辑错误的排查与修复
React useEffect 中闭包捕获旧值导致定时器逻辑错误的排查与修复
用户12771345
关注
发布于 2026-10-28 08:32:31
发布于 2026-10-28 08:32:31
98
0
举报
概述
在 React 函数组件里用 useEffect 管理定时器、事件监听或异步请求时,很容易遇到「闭包捕获了旧 state」的问题。典型场景是 setInterval 里读取的 count 永远停在初始值,或者窗口 resize 回调里拿到的宽度不是最新的。原因是每次渲染都会生成新的闭包,而 effect 只在依赖变化时重新执行,旧闭包里引用的变量被冻结在创建那一刻。如果依赖数组漏写、或者用空依赖只
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系
cloudcommunity@tencent.com
删除。
react
问题归档
专栏文章
快讯文章归档
关键词归档
开发者手册归档
开发者手册 Section 归档