在发生之前检测导航事件 nextjs 13 应用程序路由器

问题描述 投票:0回答:1

使用 nextjs 12(页面路由器),从“next/router”返回的路由器具有您可以侦听和适当处理的导航事件。 这里是文档。

一个具体事件是

routeChangeStart
。当您希望在用户离开页面之前提示他们时,您已侦听该事件,然后打开模式并抛出错误以阻止导航。

使用 nextjs 13(应用程序路由器),从“next/navigation”返回的路由器不具有订阅事件的相同能力。

文档中有一个解决方案可以告知路线何时已更改。它使用了两个新的钩子

  • usePathname
  • useSearchParams

就是解决方案。

我想知道之前路线即将改变。

您如何知道 nextjs 13 应用程序(使用应用程序路由器)何时将要导航,以及如何阻止它这样做?

events navigation router next.js13 onbeforeunload
1个回答
0
投票

如果您使用 Link 组件进行导航,则可以使用自定义组件切换它并使用 useRouter 钩子。

© www.soinside.com 2019 - 2024. All rights reserved.