Мой компонент извлекает некоторые данные с YouTube перед возвратом на страницу - проблема в том, что youtubePlaylistItems
не заполняется.
Когда я пытаюсь переместить renderYoutubePlaylistItems
в выборку, я получаю сообщение об ошибке ничего не возвращается из компонента, если я добавляю 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
Заранее спасибо.