问题标签 [getstaticpaths]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1571 浏览

next.js - 错误“getStaticPaths 只能用于动态页面,不能用于 Next JS”

我想将 getStaticPaths 用于具有动态路由的帖子博客,但在构建时出现错误。

我的动态路由文件夹:

页面/文章/[类别]/[slug].js

我的链接导航:

我的 getStaticPaths:

但是当我运行npm run build我得到这个错误:

0 投票
1 回答
2172 浏览

reactjs - 如何在 Next.js 中设置多语言环境动态页面的 getStaticPaths

今天,在我的副项目中,我遇到了一个与在 Next.js 中设置多语言环境动态页面的 getStaticPaths 相关的问题。我研究并发现有很多人陷入了这个问题。

我创建了一个动态页面 [slug].js 来处理我从数据库中获取的所有动态数据。我正在处理的网站也是多语言网站,它使用 next-translate 处理 i18n。

在 [slug].js 中,我们必须设置一个函数 getStaticPaths 来处理所有静态 url。如果网站有 1 种语言会更容易,但如果有超过 2 种语言,我们必须循环它。

0 投票
0 回答
146 浏览

javascript - NextJS - getStaticPaths - 路径似乎没有绑定到参数之一

我的 Next.js 应用程序的页面由 API 提供,每个页面都有一个 uri_prefix 和一个 uri。uri_prefix 是强制性的,可以是cs现在。但最终可以选择任何字母。

这是一个非常简单的结构:

处理它的 [slug].jsx 页面使用 ISG。

到目前为止,getStaticPath 回退设置为 true,因此如果管理员(eg. {uri_prefix : c, uri : newpage1} & {uri_prefix : s, uri : newpage2})在后台创建新页面,ISG会在首次触发时生成静态/c/newpage1和文件。/s/newpage2

但是一旦生成,尝试 alt url,例如/x/newpageor/whatever/newpage也会启动页面,这有点出乎意料(并且不需要)。阅读文档,我认为它只允许现有的前缀。

将 fallback 设置为 false 会禁止不需要的 url,但也需要重新构建应用程序,这不方便。

我想拥有/c/newpage1/s/newpage2渲染,但不是(当然也不/c/newpage2是)。每个页面仅与它自己的前缀相关联。/s/newpage1/somethingelse/newpage*

我是否误解了后备的工作原理?

代码中是否存在明显错误,或者是否有另一种方法可以在没有完整构建的情况下为新页面实现 ISG,同时禁止不需要的 url?

这是 [slug].jsx 页面:

提前致谢。

0 投票
1 回答
1179 浏览

reactjs - Next.js ISR 页面在 CMS 中删除后未删除

我正在尝试 Next.js 并构建一个小应用程序,该应用程序从安装了 GraphQL 的无头 WordPress 应用程序中获取帖子。然后我使用 Apollo/Client 来获取 GraphQL 内容:

阿波罗客户端.js

在索引中,我抓住了帖子:

index.js

然后对于单个帖子页面:

/blog/[slug].js

添加新帖子时它可以工作,一旦我删除它,它就不会被删除。这发生在做npm run devnpm run build然后npm start

我可能在 ISR 和重新验证的工作方式上遇到了问题。或者我的代码中可能遗漏了什么?任何帮助,将不胜感激。

- 编辑 -

同时,在 Stackoverflow 和 Next.js github 存储库上还有几个线程,与我正在经历的有关。相关页面:

Next.js 不删除 CMS 中删除的动态页面

https://github.com/vercel/next.js/issues/25470

Next.js ISR 页面在 CMS 中删除后未删除

如何清除 NextJs GetStaticPaths 缓存/“取消发布”动态路由?

https://github.com/vercel/next.js/discussions/18967

0 投票
1 回答
385 浏览

next.js - NextJS 路由错误,换页时,试图打开错误的文件

我想要的是

我想更改页面而不考虑我正在尝试打开另一个页面。

问题

我有这个奇怪的路由问题。一、我的文件夹结构

我在这条路径上/[app]并导航到/[app]/manager然后我想导航到/[app]/feed并且我得到这个Unhandled Runtime Error

此错误来自[object] index.js. 堆栈跟踪如下。当然,它无法读取标题是有道理的,因为我正在尝试打开另一个页面。然而它认为我正在尝试打开[object]. 这个错误不时发生,但我尝试打开页面的顺序无关紧要,它可以是经理提供或提供给经理,或者我那里有其他任何东西。我的getStaticPathsgetStaticProps在所有这些页面上都是相同的,我将分享一个用于manager.js.

再次相同,但对于[object]

这个错误很难重现,因为它只是不时发生。


新编辑

这是完整的文件[object]/index.js

堆栈跟踪:


25.06.2021

所以我安慰从ObjectPage和 为每个NavigationItem. 我注意到了一些奇怪的事情。
这是我传递给 teh 的 href <Link>

这是我要重新使用的完整路由器ObjectPage

query你可以看到object被注入。但我不知道从哪里以及为什么。

0 投票
0 回答
41 浏览

reactjs - 与 getStaticPaths 一起使用的 getStaticProps 不会根据参数更新动态路由的数据

我有带有 URL 的页面,例如/how-it-works/[id]which usegetStaticPropsgetStaticPaths. 当我导航到具有不同id. 数据(来自getStaticProps)未更新。它保留为第一次访问此路由时的数据。如果我刷新页面,数据会更新,但是当我尝试使用链接导航时再次出现错误。

id我正在通过ctx.paramsin访问数据getStaticPaths

该问题仅在升级到 NextJS 11 后才开始。这之前工作正常。

next/link用于导航。

0 投票
0 回答
812 浏览

next.js - Nextjs 构建错误:导出在以下路径 /users/[userid] 上遇到错误

我创建了一个 nextjs 应用程序,我正在从部署在 netlify 上的快速服务器获取数据。我创建了两个页面,第一个页面显示用户列表(我有具有 getServerSideProps() 函数的用户),第二个页面是当您单击用户时,您将被重定向到用户配置文件(我'已经通过 getStaticProps() 和 getStaticPaths() 函数获得了用户的数据)。

在本地主机上一切正常。

但是当我尝试在 Netlify 上部署应用程序时,我在构建它时遇到了这个错误:

> 晚上 11:24:20 发生构建错误:错误:导出在以下路径 /users/[userid] 上遇到错误

用户列表文件:

配置文件:

0 投票
1 回答
445 浏览

django-rest-framework - 将 Next.js 应用程序部署到 Vercel 时出错

我正在尝试使用 Next.js 和我的自定义后端与 Django 开发 Next.js 应用程序。我已经完成了它开发我想要的一切但是当我尝试将它部署到 Vercel 时它给我 getStaticPaths 错误每次我这样做,但是我尝试制作我可以使用 Next.js 和动态路由它工作正常,没有任何问题。

你能帮我吗,因为这是开发我的博客应用程序的最后一步

我遇到的错误 =>

可以在这里找到回购代码 =>https://github.com/coderaman07/Days-of-Code

0 投票
1 回答
496 浏览

javascript - 错误:所需参数 (productId) 未在 getStaticPaths 中为 /products/[productId] 提供为字符串

我想展示来自 JSON 的 3 个产品。我正在尝试做一个 NextJS Web 应用程序。我只是在学习,当我复制教程时一切都是正确的,但我正在做自己的更改,并尝试创建不同的东西,但它不起作用。

谢谢大家!

在不同的路线与Link。这是我的 [productId].js 文件的最后一部分:

我从 Chrome 获取:错误:在 getStaticPaths 中未将必需参数 (productId) 作为字符串提供 /products/[productId]

0 投票
0 回答
243 浏览

javascript - 使用 getStaticPaths 和 getStaticProps 在 nextjs 中使用 Airtable 中的表中的数据进行分页

我正在尝试使用来自 Airtable 中的表的数据在 Nextjs 中设置分页,但我无法弄清楚如何通过 getStaticProps 和 getStaticPaths 来实现这一点。

以下是我的目录结构的一部分

我在 posts/index.js 中编写了以下函数,以从后端 Airtable 表中检索数据。该函数预计将返回约 100 多条记录。

下面是我的 getStaticProps()

我需要将约 100 多条记录分页成每页 9 条记录,我只是无法弄清楚如何使用 getStaticProps 和 getStaticPaths 来做到这一点。作为尝试,我将 posts/index.js 重命名为 posts/[page].js 并如下修改 getStaticProps 以创建一个记录数组,每页分成 9 个。

以下是帖子的代码片段。

我什至不知道我上面写的 getStaticProps 是否有意义。此时我不知道如何编写 getStaticPaths 来创建路由。

任何帮助表示赞赏。顺便说一句,我是一个完全的js菜鸟,刚刚开始学习。