首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >React 中 useEffect 闭包陷阱:为什么你的定时器总是拿到旧 state?

React 中 useEffect 闭包陷阱:为什么你的定时器总是拿到旧 state?

作者头像
用户1839651
发布于 2026-10-30 10:25:24
发布于 2026-10-30 10:25:24
1280
举报
概述
写 React 函数组件时,只要在 useEffect 里用到了组件内的变量,就很容易踩到闭包陷阱。最典型的场景是定时器:你写了一个 setInterval 每秒把 count 加一,结果发现界面永远停在 1。原因是每次渲染都会生成新的 count 和新的 effect 函数,但你在 effect 里注册的定时器回调,捕获的是第一次渲染时的 count 值。即使依赖数组里加了 count,也会因为

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档