Configuration dynamique des métadonnées du répertoire d'application Next.js pour correspondre aux valeurs d'état
P粉713866425
P粉713866425 2023-12-28 22:59:40
0
1
464

Dans le répertoire Next.js 13app, j'ai vu dans la documentation officielle qu'ils avaient abandonné l'ancienne méthode head au profit de l'utilisation de métadonnées, qui, je pense, ne peuvent être utilisées que sur des pages ou des mises en page.

Je souhaite modifier le titre en fonction de la valeur du statut, comment puis-je le faire ? L'objet dans les métadonnées se trouve en dehors du composant, je ne peux donc pas le référencer.

import type { Metadata } from 'next';
 
export const metadata: Metadata = {
  title: 'Home',
  description: 'Welcome to Next.js',
};
 
export default function Page() {
  return '...';
}


P粉713866425
P粉713866425

répondre à tous(1)
P粉025632437

Si par « état » vous entendez quelque chose de similaire à « useState », alors ce n'est pas possible. Parce que metadata仅适用于服务器组件,而useState ne peut être utilisé que dans les composants clients. Le document dit  :  p>

Pour les pages normales, vous savez généralement quelles métadonnées vous souhaitez renvoyer, donc un objet metadata元数据对象应该足够了。如果页面是动态的,则有 generateMetadata devrait suffire. Si la page est dynamique, il y a generateMetadata

Voici un exemple de définition dynamique du titre :

// app/products/[id]/page.tsx

export async function generateMetadata({ params, searchParams }) {
  // read route params
  const id = params.id;

  // fetch data
  const product = await fetch(`/api/products/${id}`).then((res) => res.json());

  // return a dynamic title
  return {
    title: product.title,
  };
}

export default function Page() {
  return '...';
}
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal