使用fetch调用Unsplash API获取数据时属性返回undefined如何解决?
问题产生原因
- 你在请求URL中添加了
count=1参数,Unsplash随机照片接口携带count参数时,返回的data是包含对应数量照片对象的数组,而非单个照片对象。直接从数组上访问仅照片对象具备的likes、views、downloads属性,自然会返回undefined。
解决方法
有两种方案可选:
- 保留
count=1参数的前提下,取数组第一个元素再访问对应属性,修正后代码如下:
fetch(`https://api.unsplash.com/photos/random/?client_id=YILDy9SO8bXBp_dwX7aFO3R_UAs1-8v0gTrK2o2wllE&count=1`) .then(response => response.json()) .then(data => { // 取数组首位的照片对象 const photo = data[0] console.log(photo); console.log("Likes:", photo.likes); console.log("Views:", photo.views); console.log("Downloads:", photo.downloads); });
- 如果你只需要单张随机照片,可以直接删除
count=1参数,此时接口直接返回单个照片对象,原访问逻辑无需修改:
fetch(`https://api.unsplash.com/photos/random/?client_id=YILDy9SO8bXBp_dwX7aFO3R_UAs1-8v0gTrK2o2wllE`) .then(response => response.json()) .then(photo => { console.log(photo); console.log("Likes:", photo.likes); console.log("Views:", photo.views); console.log("Downloads:", photo.downloads); });
内容的提问来源于stack exchange,提问作者Satyajit Roy
相关产品推荐
相关产品推荐

