Skip to content
Discussion options

You must be logged in to vote

@devbymak solution works perfectly when metadata is statically defined. But when generateMetadata() is used, title is not set. This is because first render is done before dynamic metadata is applied. So I had to implement MutationObserver hook:

"use client";

import { useEffect, useMemo, useState } from "react";

// This is optional and can be omitted
export type TitleObserverCallback = (title: string) => void;

export function useTitleObserver(onTitleChange?: TitleObserverCallback) {
  const [title, setTitle] = useState("");

  const isMounted = useMemo(() => true, []);

  useEffect(() => {
    const observer = new MutationObserver((mutations) => {
      let newTitle = undefined;
      m…

Replies: 3 comments 5 replies

Comment options

You must be logged in to vote
0 replies
Comment options

You must be logged in to vote
4 replies
@ivan-kleshnin
Comment options

@devbymak
Comment options

@ivan-kleshnin
Comment options

@Esensats
Comment options

Comment options

You must be logged in to vote
1 reply
@devbymak
Comment options

Answer selected by andreynovikov
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Category
Help
Labels
None yet
5 participants