如何从React中的YouTube搜索应用中获取图像?
async function searchYouTube(query ) {
query = encodeURIComponent(query);
const response = await fetch("https://youtube-search-results.p.rapidapi.com/youtube-search/?q=" + query, {
"method": "GET",
maxResult: 2,
"headers": {
"x-rapidapi-host": "youtube-search-results.p.rapidapi.com",
'X-RapidAPI-Key': '39c26367dbmsh777490f3d0910cfp1baab3jsn22fdcdd9ff8c'
}
});
const body = await response.json();
console.log("body",body);
return body.items.filter(item => item.type === 'video');
}
在我的代码中,您可以看到,我可以获得任何信息期望的图像,您可以向我解释错误的代码
如何使用YouTube搜索结果API显示搜索结果的视频图像? 另外,在下面的照片中,您可以看到我获取图像信息,但是在代码中,我无法显示
“ https://i.sstatic.net/rcr8d.png” alt =“在此处输入图像说明”>
function Search() {
const [query, setQuery] = useState('bts');
const [list, setList] = useState(null);
const search = (event) => {
event.preventDefault();
searchYouTube(query).then(setList);
};
return (
<div className="app">
<form onSubmit={search}>
<input autoFocus value={query} onChange={e => setQuery(e.target.value)} />
<button>Search YouTube</button>
</form>
{list &&
(list.length === 0 ? <p>No results</p>
: (
<ul className="items">
{list.map(item => (
<li className="item" key={item.id}>
<div>
<b><a href={item.link}>{item.title}</a></b>
<p>{item.description}</p>
</div>
<ul className="meta">
<li>By: <a href={item.author.ref}>
{item.author.name}</a></li>
<li>Duration: {item.duration}</li>
</ul>
<img alt={item.link} src={item.thumbnails} />
{console.log("image",item.thumbnails)}
</li>
))}
</ul>
)
)
}
</div>
);
}
export default Search;
async function searchYouTube(query ) {
query = encodeURIComponent(query);
const response = await fetch("https://youtube-search-results.p.rapidapi.com/youtube-search/?q=" + query, {
"method": "GET",
maxResult: 2,
"headers": {
"x-rapidapi-host": "youtube-search-results.p.rapidapi.com",
'X-RapidAPI-Key': '39c26367dbmsh777490f3d0910cfp1baab3jsn22fdcdd9ff8c'
}
});
const body = await response.json();
console.log("body",body);
return body.items.filter(item => item.type === 'video');
}
in my code you can see , i can get any info expect image,can you explain me where is the wrong code
How do I display the video Image of the search results using YouTube Search Results API?
also in photo below you can see i get image info ,, but in code i cant show it
function Search() {
const [query, setQuery] = useState('bts');
const [list, setList] = useState(null);
const search = (event) => {
event.preventDefault();
searchYouTube(query).then(setList);
};
return (
<div className="app">
<form onSubmit={search}>
<input autoFocus value={query} onChange={e => setQuery(e.target.value)} />
<button>Search YouTube</button>
</form>
{list &&
(list.length === 0 ? <p>No results</p>
: (
<ul className="items">
{list.map(item => (
<li className="item" key={item.id}>
<div>
<b><a href={item.link}>{item.title}</a></b>
<p>{item.description}</p>
</div>
<ul className="meta">
<li>By: <a href={item.author.ref}>
{item.author.name}</a></li>
<li>Duration: {item.duration}</li>
</ul>
<img alt={item.link} src={item.thumbnails} />
{console.log("image",item.thumbnails)}
</li>
))}
</ul>
)
)
}
</div>
);
}
export default Search;
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
正如我在控制台中看到的那样,
item.Thumbnails
返回对象数组。在该对象内部,您可能拥有一些属性,例如
url
或其他访问实际缩略图URL的属性。因此,您可能需要访问该属性:As I can see in the console,
item.thumbnails
returns an array of objects.inside that object you might have some property like
url
or something else to access the actual thumbnail url. So you may need to access that property: