You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为何需用&&操作符检查React useState Hook的状态数据?

为什么删除people &&会触发"Cannot read properties of null (reading 'map')"错误?

这不是useState Hook的特性,核心原因是组件渲染时机和初始状态的冲突:

  • 你给people设置的初始值是null,组件第一次渲染时,useEffect里的异步请求还没完成,setPeople还没更新状态,此时people就是null。而null没有map方法,直接调用people.map()自然会报错。
  • people &&是JavaScript的短路求值逻辑:当people为null(假值)时,&&左边判定为假,整个表达式会直接返回null,不会执行后面的map方法,从而避免报错。等到异步请求完成,setPeople(data)把people更新为数组(真值),&&才会继续执行后面的map,渲染列表内容。

另外给你个小优化方案:可以把people的初始值设为空数组[],这样即使第一次渲染,people.map()也能正常调用(空数组的map不会产生任何元素),就不需要额外加people &&的判断了:

const [people, setPeople] = useState([])

内容的提问来源于stack exchange,提问作者sllmn

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.17 02:30:48