用户1839651
React useEffect 中 setInterval 的闭包陷阱与正确写法
原创
关注作者
腾讯云
开发者社区
文档
建议反馈
控制台
登录/注册
首页
学习
活动
专区
圈层
工具
MCP广场
文章/答案/技术大牛
搜索
搜索
关闭
发布
用户1839651
社区首页
>
专栏
>
React useEffect 中 setInterval 的闭包陷阱与正确写法
React useEffect 中 setInterval 的闭包陷阱与正确写法
用户1839651
关注
发布于 2026-10-28 08:35:12
发布于 2026-10-28 08:35:12
42
0
举报
概述
在 React 函数组件里用 useEffect 启动 setInterval 做轮询或倒计时,几乎每个前端都踩过同一个坑:回调里读到的 state 永远是初始值。这个问题通常不会报错,只是数据悄悄不更新,排查时容易误判为后端接口没返回。根本原因是每次渲染都会生成新的闭包,而 setInterval 只捕获了第一次渲染时的那份变量引用。如果依赖数组里补上 state,又会导致定时器被反复清除重建,
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系
cloudcommunity@tencent.com
删除。
react
问题归档
专栏文章
快讯文章归档
关键词归档
开发者手册归档
开发者手册 Section 归档