我在Next.js页面中使用getStaticProps
。
export const getStaticProps = wrapper.getStaticProps(async ({ store }) => {
store.dispatch(getInfoRequest());
store.dispatch(END);
await store.sagaTask.toPromise()
});
这是一条动态路线。 当我刷新页面时得到:
错误:动态SSG页面需要getStaticPaths,而'/dates/[[...info]]'缺少getStaticPaths。 了解更多:https://err.sh/next.js/invalid-getstaticpaths-value
为什么会发生此错误?
答案 0 :(得分:0)
您似乎忘记了向页面添加getStaticPaths
功能。静态生成动态路由页面时,都需要这两者。
由于动态路由包含可以是任何参数的参数,因此Next.js需要知道在构建时要生成哪些具体路径。这就是为什么您需要导出<--REDACTED--> Service "nextcloud/nextcloud-service" does not have any active Endpoint.
的原因,该getStaticPaths
的返回值中应包含一个字符串路径列表,其中的占位符已替换为实际值。
例如,如果您的动态路由为/user/[id]
,则getStaticPaths
可能会返回:
{
paths: [
'/user/1',
'/user/2',
'/user/3'
],
fallback: true
}
您可能希望在构建时动态生成这些路径,您完全可以在getStaticPaths
内完成这些操作。因此,假设您已经在其他地方创建了一个名为getUsers
的函数,它可能看起来像这样:
export async function getStaticPaths() {
const users = getUsers();
return {
paths: users.map((u) => `/user/${u.id}`),
fallback: true
}
}
有关更多信息,see the documentation。