You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

React JS中调用YouTube API返回undefined问题排查

问题:React项目调用YouTube API获取播放列表视频时控制台打印data为undefined

我尝试从YouTube频道播放列表中获取已上传的视频,在React JS项目中调用YouTube API后,Chrome控制台打印响应结果时显示undefined。

初始代码

import React from 'react';
import './Home.css'
//Components
import Header from '../../Components/Header/Header';
import Footer from '../../Components/Footer/Footer';

const YouTube_Playlist_Items_API = process.env.REACT_APP_YouTube_PlayList_Item_API_URL;
const YouTube_Key = process.env.REACT_APP_YouTube_API_Key;
const YouTube_Playlist_ID = process.env.REACT_APP_YouTube_PlayList_Item_ID;
const YouTube_MaxResults = process.env.REACT_APP_YouTube_PlayList_Max_Results;

export async function getLatestYouTubePost(){
    const res = await fetch(`${YouTube_Playlist_Items_API}?part=snippet&maxResults=${YouTube_MaxResults}&playlistId=${YouTube_Playlist_ID}&key=${YouTube_Key}`);
    const data = await res.json();
    console.log('data', data);
    return {
        props:{
            data
        }
    }
}

const Home = ({data}) => {
        getServerSideProps();
    return (
        <>
            <Header/>
            <div className='homeBody'>
                <p>Hello</p>
            </div>
            <Footer />
        </>
    );
}

export default Home;

更新说明

我发现如果移除getLatestYouTubePost()的export修饰符,响应结果不再返回undefined。以下是更新后的代码:

import React, { useState, useEffect } from 'react';
import './Home.css'
//Components
import Header from '../../Components/Header/Header';
import Footer from '../../Components/Footer/Footer';
//Repositories
import { Navigate } from 'react-router-dom';

const YouTube_Playlist_Items_API = process.env.REACT_APP_YouTube_PlayList_Item_API_URL;
const YouTube_Key = process.env.REACT_APP_YouTube_API_KEY;
const YouTube_Playlist_ID = process.env.REACT_APP_YouTube_PlayList_Item_ID;
const YouTube_MaxResults = process.env.REACT_APP_YouTube_PlayList_Max_Results;

async function getLatestYouTubePost(){
    const res = await fetch(`${YouTube_Playlist_Items_API}?part=snippet&amp;playlistId=${YouTube_Playlist_ID}&amp;maxResults=${YouTube_MaxResults}&amp;key=${YouTube_Key}`);
    const data = await res.json();
    return {
        props: {
          data
        }
    }
}

const Home = ({data}) => {
    console.log('data', data);
    return (
        <>
            <Header/>
            <div className='homeBody'>
                <p>Hello</p>
            </div>
            <Footer />
        </>
    );
}

export default Home;

内容的提问来源于stack exchange,提问作者JonD

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.23 03:25:07