【发布时间】:2021-03-12 06:45:23
【问题描述】:
以下代码可以在构建时在 Home 组件级别获取数据时进行 Next.js 的静态生成:
export async function getStaticProps() {
const dataAtBuild = await fetch(
"https://api.weather.gov/gridpoints/MTR/84,105/forecast"
).then((res) => res.json());
return {
props: {
dataAtBuild
}
};
}
演示:https://codesandbox.io/s/quirky-zhukovsky-l7wb9?file=/pages/index.js
并使用卷曲其输出
curl https://l7wb9.sse.codesandbox.io/ | grep -o -E '.{30}Time of.{60}'
可以显示
<p>Time of forecast: <!-- -->3/12/2021, 6:00:00 AM
在构建时生成。
但是,如果将代码 getStaticProps() 移动到组件 Weather 中,则它不能具有构建时间数据,如
演示:https://codesandbox.io/s/cool-night-08cz7?file=/pages/Weather.js
然后卷曲它:
curl https://08cz7.sse.codesandbox.io/ | grep -o -E '.{30}Time of.{60}'
在构建时无法再获取静态生成的内容。
如何让它在组件级别工作?
【问题讨论】: