Next.js 你能有多个加法';头部';NextJS中的元素?

Next.js 你能有多个加法';头部';NextJS中的元素?,next.js,Next.js,我希望能够在\u document.js中有一个“master”HEAD元素,并且对于某些页面,有一个额外的HEAD元素添加到“master”中。从表面上看,这似乎是可能的 然而,当在Stack Overflow中搜索答案时,我发现,这似乎表明这可能导致意外的结果 如果我不能有多个HEAD元素,我是否需要通过getInitialProps从单个页面传递数据?当您需要对其进行操作时,您可以简单地将next/HEAD导入任何页面/组件 例如: import Head from 'next/head'

我希望能够在
\u document.js
中有一个“master”
HEAD
元素,并且对于某些页面,有一个额外的
HEAD
元素添加到“master”中。从表面上看,这似乎是可能的

然而,当在Stack Overflow中搜索答案时,我发现,这似乎表明这可能导致意外的结果


如果我不能有多个
HEAD
元素,我是否需要通过
getInitialProps
从单个页面传递数据?

当您需要对其进行操作时,您可以简单地将
next/HEAD
导入任何页面/组件

例如:

import Head from 'next/head'

function IndexPage() {
  return (
    <div>
      <Head>
        <title>My page title</title>
        <meta name="viewport" content="initial-scale=1.0, width=device-width" />
      </Head>
      <p>Hello world!</p>
    </div>
  )
}

export default IndexPage
到目前为止,我没有遇到任何问题

但要记住的是:


卸载组件后,head的内容将被清除,因此请确保每个页面都完全定义了它在head中所需的内容,而不必对其他页面添加的内容进行假设。

库的目的是,它可以像您所怀疑的那样添加。你链接到的帖子似乎很迷信;作者没有提供具体的证据,只是猜测,他们显然也没有表现出对他们观察到的行为的理解。
import Document, { Head, Main, NextScript } from 'next/document';

export default class MyDocument extends Document {
  render() {
    return (
      <html lang="en">
        <Head>
          <link rel="shortcut icon" href="/favicon.ico" />
        </Head>
        <body>
          <Main />
          <NextScript />
        </body>
      </html>
    );
  }
}