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

浏览器抛出TypeError: Cannot read properties of undefined (reading 'map')的排查

解决TypeError: Cannot read properties of undefined (reading 'map')错误

问题根源

你的MyReservations组件调用reservations.map()时,reservations的值是undefined,导致报错。原因有两点:

  • App.js渲染MyReservations时,只传递了user属性,未传入reservations和setReservations
  • 组件初始化阶段,reservations未被赋值(即使fetch是异步的,父组件也没提供初始值),直接执行map操作触发错误

修复步骤

1. 在App.js中添加reservations状态

在App组件内初始化reservations状态及对应的更新函数:

function App() {
  const [user, setUser] = useState(null);
  // 新增reservations状态初始化
  const [reservations, setReservations] = useState([]);

  // ... 其余代码保持不变
}

2. 给MyReservations传递完整props

修改App.js中的路由配置,将reservations和setReservations作为props传入组件:

<Route exact path="/myreservations" element={<MyReservations user={user} reservations={reservations} setReservations={setReservations} />} />

可选:为MyReservations的props设置默认值

为了避免父组件未传值时再次出错,可在MyReservations组件中给reservations设置默认空数组:

function MyReservations({user, reservations = [], setReservations}){
  // ... 组件原有逻辑不变
}

完成以上修改后,初始状态下reservations是空数组,map操作不会报错,等fetch请求完成后会自动更新为实际预订数据。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.21 05:39:24