gpt4 book ai didi

javascript - Next.js 为 _app.js 中的特定页面选择退出布局组件

转载 作者:行者123 更新时间:2023-12-04 16:37:52 25 4
gpt4 key购买 nike

如何不使用 Layout component 换行特定页面在 _app.js ?
例如,我有两个页面为 pages/homepages/about ,现在我怎么能不换行 我的 pages/home带有 Layout 的页面零件?
pages/_app.js

import "../styles/globals.css";
import Layout from "../components/Layout";

function MyApp({ Component, pageProps }) {

return (
<Layout>
<Component {...pageProps} />
</Layout>
);

}

export default MyApp;

我试过的:
pages/_app.js
function MyApp({ Component, pageProps }) {
console.log(typeof Component); // gives me a function

switch (Component) {
case Home():
return <Component {...pageProps} />;
default:
return (
<Layout>
<Component {...pageProps} />{" "}
</Layout>
);
}
}
页面/home.js
import React from 'react';

const Home= () => {
return (<div>Hello</div>);
};

export default Home;

最佳答案

通过检查 appProps.router.pathname属性传递给它。
方式1

function MyApp({ Component, pageProps, ...appProps }: AppProps) {
const getContent = () => {
if ([`/dashboard`].includes(appProps.router.pathname))
return <Component {...pageProps} />;

return (
<Layout>
<Component {...pageProps} />{" "}
</Layout>
);
};

return <ApplicationWrapper>{getContent()}</ApplicationWrapper>;
}

方式2
function MyApp({ Component, pageProps, ...appProps }: AppProps) {

const isLayoutNeeded = [`/dashboard`].includes(appProps.router.pathname);

const LayoutComponent = isLayoutNeeded ? Layout : React.Fragment;




return (<ApplicationWrapper>
<LayoutComponent>
<Component />
</LayoutCompnent>
</ApplicationWrapper>);
}

关于javascript - Next.js 为 _app.js 中的特定页面选择退出布局组件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66914855/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com