我怎样才能在 Next Js 中做到这一点
2020-06-26
389
在 NextJs 应用中我想添加一个带导航的路由 /cabinet ,尽管应用本身已经在 _app.js 中定义了导航栏,是否可以为 /cabinet 和 /cabinet/something 添加一个 _app.js 的类似物?即为单独的目录添加带路由的导航。
- pages
-- api
-- app.js
-- index.js
-- cabinet
--- settings.js
--- panel.js
1个回答
文档没有提到存在多个
_app.js
文件的可能性,而且我快速浏览 Next.js 源代码也没有看到任何允许这样做的内容。因此,您可以:
-
将导航栏重构为其自己的组件,并仅在需要时将其导入,而不是将其留在
_app.js
中。(这可能是明智的做法。) -
或者,修改
_app.js
以仅为cabinet
目录之外的 URL 呈现常规导航栏。您需要将router
属性添加到组件的参数列表中,该属性 始终存在 ,但未显示在_app.js
的文档页面中:function MyApp({ Component, pageProps, router }) { const isCabinet = router.pathname.includes("/cabinet/"); return <>{ isCabinet ? <CabinetNav /> : <Nav /> } <Component {...pageProps} /> </>; }
jdaz
2020-06-26