How to set metadata to page.tsx rendered as client components?
The
export const metadatasyntax seems to not work ifpage.tsxis a client component. How do I set my page title and other metadata then?
The metadata, generateMetadata, viewport and generateViewport exports are only supported in server components. Hence, you need to make your page a server component to use them. A method to do that is to move all your client-side logic to a separate client component and import that client component to the now-server component page.tsx. So instead of
you need to make a new client component, say page.client.tsx, and import it to page.tsx:
How do I set dynamic metadata that depends on client-side states?
Just put <title>, <meta> and metadata <link> tags anywhere in your component tree, including inside client components. React will automatically detect this and put those tags in <head> for you.
