javascript - 使用 fetch 的 React 组件不从响应中填充状态
问题描述
我的组件在将其返回到页面之前从 YouTube 获取一些数据 - 问题youtubePlaylistItems
是没有填充。
当我尝试renderYoutubePlaylistItems
进入 fetch 时,我收到一个关于组件没有返回任何内容的错误,如果我添加 return null 我什么也得不到。
就目前而言,我收到一个关于youtubePlaylistItems.map
不是函数的错误。
我已经到了一个地步,我想我会在这里问,因为谷歌让我失望了。
import React, {useState, useEffect} from "react"
const FetchYoutubePlaylist = (props) => {
const [youtubePlaylistItems, setYoutubePlaylistItems] = useState([])
useEffect(() => {
let endpoint = "https://www.googleapis.com/youtube/v3/playlistItems?part=snippet&maxResults=" + props.maxResults + "&playlistId=" + props.playlistID + "&key=" + process.env.GATSBY_YOUTUBE_API_KEY
fetch(endpoint, {
"METHOD": "GET",
"Content-Type": "application/json"
})
.then((response) => {
// console.log(response)
return response.json()
})
.then((json) => {
// console.log(json)
setYoutubePlaylistItems(json)
})
.catch((error) => {
console.log("There was an error: " + error)
})
}, [props.maxResults, props.playlistID])
return (
renderYoutubePlaylistItems(youtubePlaylistItems)
)
}
const renderYoutubePlaylistItems = (youtubePlaylistItems) => {
let videos = youtubePlaylistItems.map( function(video, index) {
return <li key={index}>{video.items.snippet.title}</li>
})
return (
<ul>
{videos}
</ul>
)
}
export default FetchYoutubePlaylist
提前致谢。
解决方案
不应该"Content-Type": "application/json"
吗?
推荐阅读
- c - C中嵌套for循环的循环展开
- python - 页面的 {% for item in items %} 部分不起作用
- arrays - SNOWFLAKE - 获取列总和并聚合数组列的查询
- uwp - UWP 单元测试不从 MSIX 运行
- mysql - 终端关闭——退出 mysqldump:写入时出现 errno 32
- python - 各组的 Python 百分比变化
- firebase - 将 Firebase Cloud Firestore 中的单个集合从一个项目移动到另一个项目
- python-3.x - 遍历字符串时出现意外结果。返回值不包括所有字符替换
- joomla3.0 - 尽管在该页面上被取消选择,但基于 Joomla 的网站显示模块
- r - 确定三个(或更多)给定时间范围是否在 R 中重叠