【问题标题】:getStaticProps Does not return any data to the pages on Next.JSgetStaticProps 不向 Next.JS 上的页面返回任何数据
【发布时间】:2021-10-17 23:29:50
【问题描述】:

我正在尝试从我的托管数据库中获取数据。数据库本身正在运行(我已经从 swagger 应用程序中检查过),但是从 API 表单调​​用时没有显示任何数据。

import React from 'react';

export const getStaticPaths = async () => {
    const res = await fetch('https://[server]/course');
    const data = await res.json();

    const paths = data.result.map(course => {
        return {
            params: { id: course._id.toString() }
        }
    })

    return {
        paths,
        fallback: false
    }
}

export const getStaticProps = async (context) => {
    const id = context.params.id;
    const res = await fetch('https://[server]/course/' + id);
    const data = await res.json();

    return {
        props: { course: data }
    }
}

const Details = ({ course }) => {
    return (
        <div>
            <h1> { course.course_name } </h1>
            <h1>a</h1>

        </div>
    );
}
 
export default Details;

代码位于 pages 文件夹中。我按照“netninja”在 youtube 上的教程进行操作,当我在他的代码上尝试它时,它可以工作。我在某处读到它不适用于组件,但我已经将它放在页面上,但它仍然没有返回任何内容。

有什么我可以做的吗?

【问题讨论】:

  • fetch 内的 getStaticProps 是否返回预期的响应/数据?
  • 应该是。我无法检查它是否存在,因为我无法调用数据。但它是一个 API 链接,当 API 链接运行时,它确实返回特定数据
  • 如果您将data 登录到控制台并检查您启动开发服务器的终端中的输出,您可以验证响应中正在重新调整的内容。您可能也想对getStaticPaths 中的请求执行相同的操作。
  • 您好,我已经对其进行了测试,但由于某种原因,它无法将数组识别为数据库(如果这有意义的话)。所以我最好的解释是,我尝试在 API 实际工作的另一个页面上进行控制台日志,并且输出的数据上有颜色指示数据类型,但在当前页面上它只有黑白(我假设这意味着代码不将其识别为数据库)。有什么我可以做的吗?
  • 您好,我刚刚发现了问题。在我在控制台日志上检查后,数据位于“course.result.course_name”上。非常感谢您的帮助,从现在开始我一定会更多地使用 console.log。再次感谢!!!

标签: javascript reactjs api next.js getstaticprops


【解决方案1】:

我得到了答案。检查console.log 后的数据。看起来数据在另一个称为结果的数组上。所以我需要从 course.result.course_name 中调用数据。所以答案就是每隔一段时间检查一次console.log。大声喊出 juliomalves 指出这一点

【讨论】:

    猜你喜欢
    • 2021-03-16
    • 2022-12-04
    • 2021-03-31
    • 2019-01-21
    • 1970-01-01
    • 2023-04-03
    • 2021-05-12
    • 2023-03-19
    相关资源
    最近更新 更多