React调用Pokemon API时sprites.back_default为undefined的问题排查
问题原因分析:访问Pokemon API的sprites返回undefined
- 核心问题是你把API返回的
sprites结构判断错了:它是对象类型,不是数组。 - 看Pokemon API返回的
sprites数据结构示例:
"sprites": { "back_default": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/4.png", "back_female": null, "back_shiny": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/shiny/4.png", "front_default": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/4.png" }
- 你写的错误代码
pokemon.sprites[0].back_default,是把sprites当成数组用索引[0]访问,但对象没有索引,所以pokemon.sprites[0]会返回undefined,再链式访问.back_default自然也是undefined。 - 正确的访问方式和你取
name的逻辑一致:用对象属性访问,即pokemon.sprites.back_default或者pokemon['sprites']['back_default']。
内容的提问来源于stack exchange,提问作者PTM.
相关产品推荐
相关产品推荐

