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

Next.js调用Anilist GraphQL API时map遍历数据无法正常渲染问题

问题根因

JSX遍历渲染无内容和接口请求、Apollo配置无关,核心错误是map遍历的回调函数没有返回JSX元素:你当前代码里medias.map的回调使用大括号包裹内部逻辑,但没有写return语句,导致每一次遍历的返回值都是undefined,自然不会渲染任何DOM节点——这也解释了为什么console.log(medias)能正常拿到数据,数据请求本身是完全正常的。

修复方法

两种正确写法二选一即可:

  • 写法1:将回调的大括号替换为小括号,小括号包裹的JSX会被自动作为返回值
{medias.map((value) => (
  <div key={value.id} className="card">
    <h3>
      {value.title.userPreferred}
    </h3>
    {/* 后续可直接在这里添加封面图渲染逻辑 <img src={value.coverImage.medium} alt={value.title.userPreferred} /> */}
  </div>
))}
  • 写法2:保留大括号的写法,在回调内部手动return需要渲染的JSX
{medias.map((value) => {
  return (
    <div key={value.id} className="card">
      <h3>
        {value.title.userPreferred}
      </h3>
    </div>
  )
})}
额外优化建议

为了避免极端场景下(比如接口返回结构异常、首次渲染data未初始化)出现读取undefined属性的报错,可以将取媒体数据的写法增加可选链和空值兜底:

const medias = data?.Page?.media || [];

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 01:30:48