Next.js前端如何访问Strapi返回的嵌套JSON对象内的字段?
问题原因与解决方案
Strapi未返回关联的provider字段
Strapi REST API 默认不会主动返回关联模型的数据,你需要在请求接口时显式添加 populate 参数拉取关联数据:
示例请求:GET /api/activities?populate=provider
如果你用的是GraphQL查询,需要在查询语句中显式声明provider下的所有需要用到的字段,否则provider字段不会被返回。前端渲染时数据未加载完成
Next.js 客户端侧渲染时,首次渲染阶段接口请求还未返回,此时activity可能是空对象,activity.provider为undefined,直接访问activity.provider.providerName会抛出类型错误。
解决方案:使用可选链运算符规避空值报错,写法调整为{activity?.provider?.providerName};也可以在组件外层加加载状态判断,等数据完全返回后再渲染内容。部分数据无关联provider
检查返回的所有activity条目,确认是否存在没有关联provider的条目,这类条目的provider字段为null,访问时也会报错,同样可以用上面的可选链写法兼容这类情况。
内容的提问来源于stack exchange,提问作者Ibo
相关产品推荐
相关产品推荐

