问题标签 [next-router]

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 回答
678 浏览

reactjs - Next.js 路由与子路由的“next-connect”

在我的项目中,我使用包Next.js创建了一个类似快递的route->middleware->endpoint模式。next-connect

我有这个路线模式:

在我的pages/api/tours/index.js文件中,我添加了一条路由来捕获 api/tours 和所有其他子路由,例如 api/tours/top-5-cheap。根据文档,这应该有效。但是只有 api/tours 可以正常工作,对 api/tours/subroute 的任何请求都会给出一个page not found error.Docs: next-connect

我希望能够从pages/api/index.js文件中捕获对 api/tours 和 api/tours/subroute 的所有请求,而不是为每个子路由创建一个文件 欢迎提出任何建议或帮助

0 投票
0 回答
15 浏览

next.js - 下一个路由器允许页面重新加载,但通过手动输入 url 来阻止导航

我有一个多步表单,第二步是用户输入。因此,如果网络崩溃或出于任何原因用户需要使用输入重新加载第二步,我希望他能够这样做,而不会被引导到默认路由。但是,如果用户希望在输入 url 的步骤之间导航,他不应该这样做。

这段代码不仅会在手动录制时将用户返回到家中,还会在重新加载时返回:

所以,我一直在考虑检查,如果当前路径基本保持不变,应该不会发生 router.replace 。我的代码肯定坏了,但我认为后面的想法应该是正确的:

所以基本上问题是,我如何检查路径是否已更改,然后进行替换,如果没有,则仅呈现相同的表单步骤。

0 投票
0 回答
128 浏览

routes - next.js 浅层路由不同页面

我想为我的下一个项目添加路由,但不能对不同的页面使用浅路由。例如,我想从 /s/:id 切换到 /p/:id,而不需要重新渲染页面,就像我仍然在同一个 URL 上一样。我的项目已经建成,我只想添加路由,但不允许这样做,如文档所示

我知道它不应该起作用,但是替代方法是什么?

0 投票
1 回答
135 浏览

unit-testing - 如何在 next/router jest.mock 中动态更新查询

有没有办法动态更新next/router/jest.mock 查询?

我本质上是在尝试根据运行的测试模拟不同的查询。

IE

上面的模拟应该为描述块 1 运行

然后应该更新模拟以使用不同的查询运行块2,即

所以本质上我希望能够更新 jest.mock 中的查询

0 投票
0 回答
24 浏览

javascript - Next.Js 中使用 HOC 的持久布局

问题的背景

HOC

在处理Next.Js页面时,一种常见的做法是使用HOC(Higher-Order Component) 来避免重新键入页面的基础。

例如,身份验证HOC 可用于检查用户是否经过身份验证。根据结果​​,用户可以访问该页面或被重定向到登录页面。

布局

Next.Js程序员常用的另一种做法是Persistent Layouts. 持久布局是页面上的一个“区域”,当用户浏览页面时不会重新呈现。这对 UX(用户体验)非常有用,例如,菜单的滚动位置保持在页面切换上。

一些不错的链接

NextJs.org - 持久布局文档

CheatCode.co - 如何处理经过身份验证的路由(下面使用的 HOC)

问题

当结合这两种做法时,就会出现持久性问题。(阅读里面的评论AuthenticationRoute.js

这是一个非常简单的index.js

布局Layout.js

最后是 HOCAuthenticationRoute.js

没有 HOC

index.js当不调用authenticatedRoute时,这在里面工作:

所以我的猜测是 authenticatedRoute 应该返回别的东西return <Component {...this.props} />;

0 投票
0 回答
29 浏览

next.js - [参数] 可以动态插入到 Next.js 中的路径中吗?

我在尝试使用[params]/时遇到问题:params

我正在使用的路径的结构将始终如下: console/sites/[siteId]/possibly-another-directory/page.

console/sites我可以basePathnext.config.js中设置的部分,但[siteId]我宁愿不必手动添加到每个路径,以免以console/sites/possibly-another-directory/page. 是否有一个地方我可以设置它,以便它包含在我从我的网站链接到的每个路径中?

FWIW,我尝试将我设置basePath/console/sites/:siteId:siteId被读取为文字值。

0 投票
1 回答
63 浏览

javascript - 带有用户输入 URL 的 Next.js 动态路由

我正在使用 Next.js 路由器根据 URL slug 启用不同的仪表板。这在单击带有链接的按钮时有效,因为链接将信息传递给 Next.js 路由器,但当 URL 直接输入浏览器时它不起作用(即如果用户刷新页面则不起作用,或者直接使用 slug 键入 URL)。因此,虽然我可以在按下链接时使用动态路由,但如何在未按下链接时启用动态路由?

相关代码如下。非常感谢

0 投票
0 回答
50 浏览

javascript - Next.js 路由器参数不断给我未知的关键警告

我正在创建一个搜索页面,因此我使用 URL 参数来处理过滤器,例如产品类别和价格。

这是我当前处理添加和删除 URL 参数的方法:

每次 URL 更改时,我都会收到以下警告:

在此处输入图像描述

0 投票
2 回答
630 浏览

next.js - 如何根据当前动态页面使 Next.js 链接动态化?

我正在使用 Next.js 构建 LMS。到目前为止,我的项目结构是localhost/courses/1. 每门课程将有 7 页。仪表板、作业、TestAndQuizzes、成绩簿、资源、公告和名册。我已经准备好所有组件和页面。因此,如果我手动转到localhost/courses/1/assignmentsorlocalhost/courses/1323/roster等​​,则可以正常工作。

我想要做的是:当我点击作业链接时,我需要转到该特定课程的作业页面 - 类似于localhost/courses/1/assignments. 目前,我已将 URL 硬编码为,/courses/1/[page]因此如果我单击 assignments 它将转到,localhost/courses/1/assignment或者如果我单击 roster 它将转到localhost/courses/1/roster.

如何使该路线动态化,以便当用户单击课程中的一个选项卡时,它会将他们带到该特定课程的该页面?

我抬头看了看next/linknext/router但我仍然无法做到这一点。有什么帮助吗?

编辑:这是我的文件夹结构:

在此处输入图像描述

就像我上面说的,现在我已经使用链接来发送某人到/courses/1/assignment例如。

如果您想查看它托管在My app的网站。

0 投票
0 回答
24 浏览

reactjs - 使用国际化时如何在 Nextjs 中处理 router.back?

我正在尝试使用router.back(),但我也在使用 i18n 本地化。

我从主页开始,"localhost/"然后导航到 "localhost/auth/sign-in".

现在更改语言(有其特定路线)"localhost/firstLang/auth/sign-in",然后再次更改为另一种语言"localhost/secondLang/auth/sign-in"

当我想导航回使用时,router.back()我想导航到"localhost/secondLang"not to "localhost/firstLang/auth/sign-in"