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

React调用TMDB API时报items.map is not a function错误如何解决

问题根源

TMDB高分电影接口返回的JSON整体是对象类型,并非你之前对接其他接口拿到的直接数组,map是JavaScript数组的专属方法,调用对象的map方法就会触发该报错。

该接口固定返回结构如下,电影列表存放在results字段中:

{
  "page": 1,
  "total_results": 10000,
  "total_pages": 500,
  "results": [/* 电影数据数组 */]
}

你在代码中直接把完整返回对象赋值给了初始为数组的state.items,导致items最终变为对象,调用map自然失败。

修复方案

修改componentDidMount生命周期中的setState逻辑,取返回对象的results字段赋值给items即可:
原代码:

.then((res) => {
    this.setState({
        items: res,
        DataisLoaded: true
    });
})

修改后:

.then((res) => {
    this.setState({
        items: res.results,
        DataisLoaded: true
    });
})

可选优化

可增加类型兜底判断,避免接口返回结构异常时页面直接崩溃:

.then((res) => {
    this.setState({
        items: Array.isArray(res.results) ? res.results : [],
        DataisLoaded: true
    });
})

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 18:36:05