hi i am newbie to nextjs
i want to pass dynamic properties to the header, for this i am using getInitialProps in nextjs. getInitialProps working okay, but when i pass to layout component its showing UNDEFINED. Below i have shared my all necessary code snippet. please help me what should in need to do for solve this problem
_app.tsx
import '../styles/globals.css'
import type { AppProps } from 'next/app'
import Layout from '../components/Layout'
import 'flowbite'
import { categoryProps } from '../interfaces'
const MyApp = ({ Component, pageProps }: AppProps, {categories}: categoryProps) => {
return (
<Layout categories={categories}>
<Component {...pageProps} />
</Layout>
)
}
MyApp.getInitialProps = async () => {
const res = await fetch(process.env.API_URL+'/categories');
const categories = await res.json();
return {categories}
}
export default MyApp
layout.tsx
import React from 'react'
import Footer from './Footer'
import Header from './Header'
import HeaderSearch from './HeaderSearch'
import Nav from './Nav'
import { categoryProps } from '../interfaces'
function Layout({children}:any,{categories}:categoryProps) {
console.log(categories); //output undefined
return (
<>
<Header/>
<HeaderSearch categories={categories} />
<Nav/>
{children}
<Footer/>
</>
)
}
export default Layout
interfaces.ts
export interface Category {
name:string,
image:string,
slug:string
}
export interface categoryProps {
categories:Category[]
}
components chrome extension output screenshots MyApp components showing categories array list.
components chrome extension output screenshots Layout components showing categories undefined