javascript - 使用 fetch 的 React 组件不会从响应中填充状态

标签 javascript reactjs fetch

我的组件从 YouTube 获取一些数据,然后将其返回到页面 - 问题是 youtubePlaylistItems 未填充。

当我尝试将 renderYoutubePlaylistItems 移动到 fetch 中时,我收到一个错误,表明组件没有返回任何内容,如果我添加 return null,我什么也得不到。

就目前情况而言,我收到一条关于 youtubePlaylistItems.map 不是函数的错误。

我已经到了我想在这里提问的地步,因为 Google 让我失望了。

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"吗?

关于javascript - 使用 fetch 的 React 组件不会从响应中填充状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60907384/

相关文章:

javascript - 在时间触发器上调用单元格中的内置函数(Google 电子表格脚本)?

javascript - 是否可以从库中定位样式组件的子组件?

php - 如何使用数组显示数据库中的所有数据

php - 使用 ajax 获取文件 — CORS 问题和设置缓存?

git - IntelliJ git fetch 修剪远程引用

php - 根据 activeCheckBox、Yii 框架的值变化更新数据库

javascript - 单击表格上 td 内的按钮并获取其他 td 值

php - 如何从 Javascript 执行外部 php?

reactjs - 在抽屉/模式打开时更改 react native 应用程序中的可访问性焦点

javascript - 为什么Redux.js在init上多次启动reducer函数?