페이지에 getLayout 속성을 추가하여 레이아웃에 대한 React 구성 요소를 반환할 수 있음
_app.tsx 타입 정의
importtype{ReactElement,ReactNode}from"react"importtype{NextPage}from"next"importtype{AppProps}from"next/app"exporttypeNextPageWithLayout<P={},IP=P>=NextPage<P,IP>&{getLayout?:(page:ReactElement)=>ReactNode}typeAppPropsWithLayout=AppProps&{Component:NextPageWithLayout}exportdefaultfunctionMyApp({Component,pageProps}:AppPropsWithLayout){// Use the layout defined at the page level, if availableconstgetLayout=Component.getLayout??((page)=>page)returngetLayout(<Component{...pageProps}/>)
}
getLayout 적용
importtype{ReactElement}from"react"importLayoutfrom"../components/layout"importNestedLayoutfrom"../components/nested-layout"importtype{NextPageWithLayout}from"./_app"constPage:NextPageWithLayout=()=>{return<p>helloworld</p>
}Page.getLayout=functiongetLayout(page:ReactElement){return(<Layout>// 내가 정의한 Layout 넣으면됨<NestedLayout>{page}</NestedLayout>
</Layout>
)}exportdefaultPage
Leave a comment