【发布时间】:2022-02-08 15:57:26
【问题描述】:
我是 Next.js 的新手,并且
我一直在尝试在我的 Next.js 应用程序的动态页面中使用 getStaticProps
我得到这个错误:
错误:动态 SSG 页面需要 getStaticPaths 并且缺少 for '/query/[itmid]'
[itmid].jsx
function Query({ posts }) {
return (
{posts.map((itm, k) => {
return (
<>
<Head>
<title> {itm.Name} - wixten </title>
</Head>
<div key={itm._id} className="Question-one">
<h1> {itm.Name}</h1>
<h2>{itm.Summary}</h2>
</div>
<div className="username">
<span className="username2">--{itm.username}</span>
</div>
</>
);
})}
</>
<div className="multi-container">
<Answershooks id={gotid} />
<RealtedPost />
</div>
</>
);
}
export async function getStaticProps() {
const res = await fetch("https://ask-over.herokuapp.com/questone/" + gotid);
console.log("check");
console.log("dada");
const posts = await res.json();
return {
props: {
posts,
},
};
}
export default Query;
为什么会出现这个错误?
【问题讨论】:
-
在使用带有
getStaticProps的动态页面时,您必须导出getStaticPaths函数。但是,如果您不想在构建时预生成页面,您可以从getStaticPaths返回一个空的paths数组并使用fallback: 'blocking'。 -
我想要预生成页面
-
然后在
paths中指定需要预先生成的路径,如以下答案中的建议:stackoverflow.com/a/71029865/1870780。确保params也与动态页面名称匹配,在您的情况下为itmid。 -
@juliomalves 你能告诉我如何将它转换成 getServerSideProps
-
为什么需要将其转换为
getServerSideProps?这是一个完全不同的问题。
标签: javascript reactjs next.js