logo

React 中 setState / useState 更新是同步还是异步?为什么常感觉“拿不到最新值”?

Is setState/useState synchronous or asynchronous in React, and why does it feel like you can’t read the latest value immediately?

题目类型: 技术面试题

这是一道技术面试题,常见于澳洲IT公司面试中。

难度: hard

分类: Frontend

标签: setState, batching, closure

参考答案摘要

答案 很多场景下(合成事件、生命周期/Effect 回调中)更新会被 批处理 ,表现为“当下读不到最新值”。本质并非一定是异步实现,而是更新在提交前不会立刻反映到当前闭包中的 state。解决思路:使用函数式更新( setState(prev=>...) )、使用 ref 保存可变值,或在下一次渲染/Effect 中读取最新状态。

本题提供 STAR 原则详细解答和技术解析,登录匠人学院学习中心即可查看完整答案。

← 返回面试题库

React 中 setState / useState 更新是同步还是异步?为什么常感觉“拿不到最新值”?

Hardreactvuejavascript

想查看完整答案?

登录匠人学院学习中心,获取 STAR 格式回答和详细技术解析

前往学习中心查看答案