用户1839651
React 中 useEffect 闭包陷阱:为什么你的定时器总是拿到旧 state?
原创
关注作者
腾讯云
开发者社区
文档
建议反馈
控制台
登录/注册
首页
学习
活动
专区
圈层
工具
MCP广场
文章/答案/技术大牛
搜索
搜索
关闭
发布
用户1839651
社区首页
>
专栏
>
React 中 useEffect 闭包陷阱:为什么你的定时器总是拿到旧 state?
React 中 useEffect 闭包陷阱:为什么你的定时器总是拿到旧 state?
用户1839651
关注
发布于 2026-10-30 10:25:24
发布于 2026-10-30 10:25:24
128
0
举报
概述
写 React 函数组件时,只要在 useEffect 里用到了组件内的变量,就很容易踩到闭包陷阱。最典型的场景是定时器:你写了一个 setInterval 每秒把 count 加一,结果发现界面永远停在 1。原因是每次渲染都会生成新的 count 和新的 effect 函数,但你在 effect 里注册的定时器回调,捕获的是第一次渲染时的 count 值。即使依赖数组里加了 count,也会因为
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系
cloudcommunity@tencent.com
删除。
react
问题归档
专栏文章
快讯文章归档
关键词归档
开发者手册归档
开发者手册 Section 归档