我们如何在 nextjs 13 中使用布局进行动态路由?
我在新的下一页应用程序中有一个目录,我在其中尝试进行动态路由:app/dashboard/[id].jsx,但是它不适用于仪表板布局。
我该怎么做?普通页面的工作方式是这样的app/dashboard/pages.jsx,但是我们如何做动态路由,在其中我也可以获得 id 呢?
我正在使用布局开发 NextJS 项目,以便我可以对所有页面使用相同的页眉和页脚。但对于其中一页,我不需要页眉,我只需要页脚。有什么办法可以做到这一点吗?
这是我的 _App.js:
function MyApp({ Component, pageProps }) {
return (
<Layout>
<Component {...pageProps} />;
</Layout>
);
}
Run Code Online (Sandbox Code Playgroud)
这就是我渲染它们的方式:
<Header />
<SidebarMenu />
<FloatingChat />
{/* Display props */}
{children}
<Footer />
Run Code Online (Sandbox Code Playgroud) 我希望能够根据当前区域设置自定义 HTML。我创建了一个_document.js内部pages目录。我使用了这段代码:
import { Html, Head, Main, NextScript } from 'next/document'
import { useRouter } from 'next/router'
export default function Document() {
const { locale } = useRouter();
return (
<Html>
<Head />
<body>
<Main />
<NextScript />
</body>
</Html>
)
}
Run Code Online (Sandbox Code Playgroud)
但我收到这个错误:
错误:错误:NextRouter 未安装。https://nextjs.org/docs/messages/next-router-not-mounted
当我访问指定的 URL 时,我看到他们说我正在使用外部逻辑<Main />。那么,我怎样才能进入locale内部呢_document.js?
我发现NextRouter 没有安装 Next.JS但即使使用next/navigation对我来说也不起作用,并且我收到此错误:
错误:预期要安装的应用程序路由器不变