如何排除渲染Layout
当路由为/login
, /register
等等...在 NextJS 中?
const MyApp = ({ Component, pageProps }) => {
return (
<Layout>
<Component {...pageProps} />
</Layout>
);
};
到目前为止我在里面做了什么Layout.js
const router = useRouter();
if (router.pathname.includes('/login')) return children;
if (router.pathname.includes('/register')) return children;
编辑:
上面的解决方案有效,只是想知道 nextjs 路由是否提供了“良好实践”的方法来解决这个问题
按照以下步骤从布局中排除特定组件。这将从布局中排除仪表板组件。
- 在你想要的组件中添加“Dashboard.getLayout”函数
排除。
const Dashboard = ({ children }) => {
return (
<>
<DashboardContent children={''}/>
</>
);
};
export default Dashboard;
Dashboard.getLayout = function PageLayout(page) {
return (
<>
{page}
</>
)
}
- 在您的 _app.js 组件文件中添加以下代码。
export default function App({ Component, pageProps }: AppProps) {
if (Component.getLayout) {
return Component.getLayout(
<Component {...pageProps} />
)
}
return <Component {...pageProps} />
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)