【发布时间】:2021-06-29 01:29:28
【问题描述】:
如何在_app.js 中不使用Layout component 包装特定页面?
例如,我有两个页面pages/home 和pages/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>
);
}
}
pages/home.js
import React from 'react';
const Home= () => {
return (<div>Hello</div>);
};
export default Home;
【问题讨论】:
-
所以你想在没有
Layout的情况下渲染Home。并且除Home之外的所有其他组件将由Layout包装。对吗? -
是的,我正在使用 Next.js BTW。
-
好的。你能分享一下
MyApp函数被调用的代码吗? -
Next.js 从
_app.js隐式调用它。但我想,我明白了,我必须使用switch (Component.name) { }
标签: javascript reactjs next.js server-side-rendering