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

React编译正常但Jest测试时报TypeError: Cannot read property 'forEach' of undefined

报错原因分析

该TypeError: Cannot read property 'forEach' of undefined报错核心触发逻辑为:Jest测试环境下你调用forEach方法的目标变量为undefined,而React开发/生产运行时该变量有上层逻辑保证不为空,因此不会触发报错。
常见触发场景如下:

  • 单测时未给组件传入必填的数组类型props,该props在正常业务流程中由上层组件保证必传
  • 单测中模拟的接口返回值、全局状态缺失对应的数组字段,代码未做空值兜底直接调用forEach
  • Jest的jsdom模拟环境未兼容部分浏览器默认存在的全局变量,导致变量取值为undefined
修复方案
  • 优先给数组调用处增加空值兜底,将代码改为(targetArray || []).forEach(...),该改动兼容所有运行场景,不会引入业务副作用
  • 检查单测用例的组件传参:若报错的数组来自组件props,单测挂载组件时必须传入符合格式的mock数组,示例:mount(<YourComponent dataList={[{id: 1, content: '测试数据'}]} />)
  • 检查异步逻辑的mock返回:若数组来自接口请求,确认mock返回的结果中包含对应的数组字段,不要漏写属性
  • 若为全局变量缺失问题,可在Jest初始化配置文件(通常为jest.setup.js)中补全全局变量默认值,示例:global.businessConfigList = global.businessConfigList || []

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 20:09:02