【问题标题】:Next.js getServerSideProps is always undefinedNext.js getServerSideProps 始终未定义
【发布时间】:2020-10-14 00:01:27
【问题描述】:

我一直从新的 Next 应用程序开始,并尽可能使用功能组件而不是基于类的组件。在documentation 之后,我没有运气设置了以下内容:

import React from 'react';
import { GetServerSideProps, InferGetServerSidePropsType } from 'next';

export const getServerSideProps: GetServerSideProps = async () => {
    return {
        props: {
            results: [1,2,3],
        },
    };
};

function Page({results}: InferGetServerSidePropsType<typeof getServerSideProps>) {
    console.log(results) // undefined
    return (
        <div className="app__page header">page here</div>
    )
}

export default Page;

无论我如何尝试,我都无法从 getServerSideProps 获取任何数据,我们将不胜感激任何帮助!

【问题讨论】:

    标签: reactjs typescript next.js


    【解决方案1】:

    您可能使用了自定义 _app 页面(例如 pankod 样板),它没有为组件提供正确的 ServerSideProps。

    还请记住,当前版本的带有自定义 _app 的 Next.js 目前不支持 Next.js 数据获取方法,例如 getStaticProps 或 getServerSideProps。

    阅读更多https://nextjs.org/docs/advanced-features/custom-app

    【讨论】:

      【解决方案2】:

      代码没有问题,但它可能在错误的地方。

      确保这是一个 Next.js 页面,并且位于 pages 目录中,因为 getServerSideProps 仅允许在页面中。

      您应该会在服务器端和浏览器控制台中看到打印的 [1,2,3]

      【讨论】:

      • 我遇到了上面的确切问题,我的页面组件确实在 pages 目录中。我的仍然返回 undefined .. 这可能是其他原因吗?
      猜你喜欢
      • 1970-01-01
      • 2021-11-21
      • 2021-04-23
      • 2011-12-16
      • 2021-09-29
      • 2017-06-26
      • 2016-06-21
      • 2020-05-07
      相关资源
      最近更新 更多