I have a blog application created in nextjs. I want to fetch menus (nav) from the api and load to Nav component. But how can I fetch menus on every refresh and save it to react context api? I have tried fetch menus from home page and save it to react context api, but on other pages menus are not available.
const MyApp = ({ Component, pageProps }) => {
const [queryClient] = React.useState(() => new QueryClient());
return (
<AppProvider>
<QueryClientProvider client={queryClient}>
<Hydrate state={pageProps.dehydratedState}>
<Component {...pageProps} />
<ReactQueryDevtools />
</Hydrate>
</QueryClientProvider>
</AppProvider>
);
};
MyApp.getInitialProps = async (appContext) => {
const appProps = await App.getInitialProps(appContext);
const response= await apiClient().get('/api/index');
const { setMenus } = useAppContext(); // This line not working
setMenus(response.data);
return { ...appProps };
};
ComponentthroughpageProps, your response already on every entry page props. Use the response to pass in addition to{...appProps, menus: response.data}