【发布时间】: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