我可以在NextJS中使用/pages目录而不是/app来拦截路由吗?

i86rm4rw  于 2023-10-18  发布在  其他
关注(0)|答案(2)|浏览(177)

我读了this page from Next docs关于拦截路由的内容,我正试图将其构建到我的应用程序中。具体来说,我希望在单击按钮时弹出一个模态,但如果用户刷新页面,则模态为全屏。然而,文档描述的是/app目录,而我的文档仍然使用/pages。我正在努力做到以下几点:

pages
| (.)photo
| | [id].tsx
| photo
| | [id].tsx

我希望当我调用router.push('/photo/'+id);时,我会得到模态,但我只是在页面上结束。这是不可能做到的,还是我错过了什么?我是否需要为此将所有内容迁移到/app?

gg0vcinb

gg0vcinb1#

在撰写本文时,拦截路由仅在应用路由器中可用。
您可以注意到它们仅在应用程序(而不是页面)下列出:https://nextjs.org/docs/getting-started/project-structure#parallel-and-intercepted-routes
您不需要将整个应用程序升级到应用程序目录来使用拦截路由,只需将依赖于它的部分升级即可。

4sup72z8

4sup72z82#

我还在寻找页面路由器的方法。我希望他们将来会支持它。我查询路由并在router.push中用as值屏蔽url。它将像拦截路由一样工作,当我们刷新它时,它将重定向到实际页面。但我们得自己处理零件。用户查询存在时显示用户拦截路由组件的示例。

router.push({query:{user:'JohnDoe'},'mask_value')

相关问题