Rumah > Soal Jawab > teks badan
Dalam direktori Next.js 13
的app
, saya melihat dalam dokumentasi rasmi bahawa mereka telah meninggalkan kaedah kepala lama untuk menggunakan metadata, yang saya fikir hanya boleh digunakan pada halaman atau reka letak.
Saya ingin menukar tajuk berdasarkan nilai status, bagaimana saya boleh melakukannya? Objek dalam metadata berada di luar komponen, jadi saya tidak boleh merujuknya.
import type { Metadata } from 'next'; export const metadata: Metadata = { title: 'Home', description: 'Welcome to Next.js', }; export default function Page() { return '...'; }
P粉0256324372023-12-29 09:25:09
Jika mengikut "state" anda bermaksud sesuatu yang serupa dengan "useState", maka ini tidak mungkin. Kerana metadata
仅适用于服务器组件,而useState
hanya boleh digunakan dalam komponen pelanggan. Dokumen berkata : p>
Untuk halaman biasa, anda biasanya tahu metadata yang ingin anda pulangkan, jadi objek 元数据
generateMetadata
sepatutnya mencukupi. Jika halaman itu dinamik, terdapat < code>generateMetadata :
Berikut ialah contoh penetapan tajuk secara dinamik:
// 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 '...'; }