TS封装axios调用API返回数组仅展示单条数据,与Postman结果不符如何解决
问题1:数组解构误用导致仅读取首项
你代码中const [locationResponseRes] = locationResponse;是数组解构赋值,功能就是取出数组的第一个元素赋值给locationResponseRes,这就是你只能看到伦敦数据的核心原因。
如果要查看全部返回结果,直接打印完整的返回数组即可:
console.log(locationResponse)
遍历数组就可以获取所有城市的返回数据:
locationResponse.forEach(item => { console.log(item) })
问题2:TypeScript接口定义与实际返回结构不匹配
你当前定义的LocationResult接口存在两处错误:
location字段实际是单个对象,你定义成了FOLocations[]数组类型cityName实际嵌套在location对象内部,你定义成了和location平级的字段
修正后的接口定义如下:
export interface apiRequest { locations: LocationOptions[]; } interface FOLocations { locationId: number; cityName: string; // cityName移到FOLocations内部 } interface LocationResult { location: FOLocations; // 去掉数组标识,匹配实际返回的对象结构 }
关于你提到的entity[]处理方式
不需要额外通过entity[]的方式处理,你现有问题都是基础语法使用错误和类型定义不匹配导致的,修正上述两个问题就能正常获取全部返回数据。
内容的提问来源于stack exchange,提问作者PoolWorld
相关产品推荐
相关产品推荐

