“Definieren von Komponentenlayout als nächstes TS” Code-Antworten

Definieren von Komponentenlayout als nächstes TS

import { NextPage } from 'next'
import { ComponentType, ReactElement, ReactNode } from 'react'

export type Page<P = {}> = NextPage<P> & {
  // You can disable whichever you don't need
  getLayout?: (page: ReactElement) => ReactNode
  layout?: ComponentType
}
Embarrassed Echidna

Definieren von Komponentenlayout als nächstes TS

import type { AppProps } from 'next/app'
import { Fragment } from 'react'
import type { Page } from '../types/page'

// this should give a better typing
type Props = AppProps & {
  Component: Page
}
const MyApp = ({ Component, pageProps }: Props) => {
  // adjust accordingly if you disabled a layout rendering option
  const getLayout = Component.getLayout ?? (page => page)
  const Layout = Component.layout ?? Fragment

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

  // or swap the layout rendering priority
  // return getLayout(<Layout><Component {...pageProps} /></Layout>)
}

export default MyApp
Embarrassed Echidna

Ähnliche Antworten wie “Definieren von Komponentenlayout als nächstes TS”

Fragen ähnlich wie “Definieren von Komponentenlayout als nächstes TS”

Weitere verwandte Antworten zu “Definieren von Komponentenlayout als nächstes TS” auf TypeScript

Durchsuchen Sie beliebte Code-Antworten nach Sprache

Durchsuchen Sie andere Codesprachen