Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在我的InExpage中获取getServerSideProps结果?_Javascript_Fetch_Next.js - Fatal编程技术网

Javascript 如何在我的InExpage中获取getServerSideProps结果?

Javascript 如何在我的InExpage中获取getServerSideProps结果?,javascript,fetch,next.js,Javascript,Fetch,Next.js,我不认为getServerSideProps会运行,我只是刚开始,不知道如何修复它,尝试了几个小时,但仍然没有从IndexPage console.log(props.data)中定义 导出默认函数InExpage(道具){ console.log(props.data.copyright); 返回( {props.data.copyright} ) } 导出异步函数getServerSideProps(){ const res=等待获取(“https://api.nasa.gov/planet

我不认为getServerSideProps会运行,我只是刚开始,不知道如何修复它,尝试了几个小时,但仍然没有从IndexPage console.log(props.data)中定义

导出默认函数InExpage(道具){
console.log(props.data.copyright);
返回(
{props.data.copyright}
)
}
导出异步函数getServerSideProps(){
const res=等待获取(“https://api.nasa.gov/planetary/apod?api_key=DEMO_KEY");
const data=wait res.json();
返回{props:{data}};
}

编辑:该代码在本地计算机和vercel部署上运行良好,但在我最初启动的codesandbox.io上却无法运行/header

您必须使用React钩子,然后调用其中的函数。然后,您可以将响应存储在状态中

试着这样做:

从“同构取消蚀刻”导入提取;
从“React”导入React,{useffect}
const IndexPage=props=>{
控制台日志(道具数据);
如果(!props.data){
返回等待数据。。。
}
返回主页;
};
导出异步函数getServerSideProps(){
const{API_URL}=process.env;
console.log(“内部提取”);
const res=wait fetch(`${API_URL}/movies`);
const data=wait res.json();
返回{props:{data}};
}
导出默认索引扩展;
否则,您可以使用
getStaticProps
那么当组件获取时,您就可以确保数据在那里。

您必须使用React钩子,然后调用其中的函数。然后,您可以将响应存储在状态中

试着这样做:

从“同构取消蚀刻”导入提取;
从“React”导入React,{useffect}
const IndexPage=props=>{
控制台日志(道具数据);
如果(!props.data){
返回等待数据。。。
}
返回主页;
};
导出异步函数getServerSideProps(){
const{API_URL}=process.env;
console.log(“内部提取”);
const res=wait fetch(`${API_URL}/movies`);
const data=wait res.json();
返回{props:{data}};
}
导出默认索引扩展;
否则,您可以使用
getStaticProps
那么当组件获取数据时,确保ou在那里。

什么是“仍然未定义的”?你想要什么样的行为?这段代码的作用是什么?尝试首先在IndexPage中记录props.data,并获取未定义的对象,而不是包含获取结果的对象。我正在youtube上学习本教程,什么是“仍然未定义”?你想要什么样的行为?这段代码的作用是什么?尝试首先在IndexPage中控制台记录props.data,并获取未定义的对象,而不是包含获取结果的对象。我正在youtube上学习本教程。知道原因吗,或者我可以做些什么来修复它吗?您没有调用该函数。你必须使用反应钩或类似物。。。您可以使用
useffect
钩子,在
IndexPage组件中
不太了解
next.js
,但也许您应该使用
getStaticProps
,查看文档
仅当您需要预呈现必须在请求时获取数据的页面时,才应使用getServerSideProps。
那么我认为这是因为,数据可能尚未获取?您能给出您的答案,而不是在注释中添加补充吗?ATM基本上不是一个答案。你知道为什么,或者我能做些什么来修复它吗?你没有调用这个函数。你必须使用反应钩或类似物。。。您可以使用
useffect
钩子,在
IndexPage组件中
不太了解
next.js
,但也许您应该使用
getStaticProps
,查看文档
仅当您需要预呈现必须在请求时获取数据的页面时,才应使用getServerSideProps。
那么我认为这是因为,数据可能尚未获取?您能给出您的答案,而不是在注释中添加补充吗?这几乎不是一个答案
export default function IndexPage(props) {
console.log(props.data.copyright);
    return (
        <>
         <div>{props.data.copyright}</div>
        </>
    )
}

export async function getServerSideProps() {
    const res = await fetch(" https://api.nasa.gov/planetary/apod?api_key=DEMO_KEY");
    const data = await res.json();
    return { props: { data } };
}