Next.js -使用_document和页面特定的next/head时的title数组警告

rqdpfwrv  于 2023-03-18  发布在  其他
关注(0)|答案(1)|浏览(178)

我已经根据文档设置了一个simple _document文件来设置Favicon,并使用Next/Head设置每个页面的标题(最终会在其中放置更多元数据)。然而,在这样做之后,我收到了以下警告(最终指向_document文件):
title元素接收到一个包含多个子元素的数组。在浏览器中,title元素只能将文本节点作为子元素。如果要呈现的子元素总共输出多个文本节点,则浏览器将在标题中将标记和注解显示为文本,并且水合可能会失败并回退到客户端呈现
一切似乎都在工作,但警告是种困扰我,所以我只是想检查一下,如果我做的事情正确。
_document.js

import { Html, Head, Main, NextScript } from "next/document";
import Favicon from "../components/layout/favicon";

export default function Document() {
  return (
    <Html>
      <Head>
        <Favicon />
      </Head>
      <body>
        <Main />
        <NextScript />
      </body>
    </Html>
  );
}

example page

import Head from "next/head";

export default function Services() {
<div>
      <Head>
        <title>Services</title>
        <meta name="description" content="TBC" />
      </Head>
....
</div>
}

我不相信它是这样的,但Favicon组件完成的缘故:
favicon.js

export default function Favicon() {
  return (
    <>
      <link
        rel="apple-touch-icon"
        sizes="180x180"
        href="/favicon/apple-touch-icon.png"
      />
      <link
        rel="icon"
        type="image/png"
        sizes="32x32"
        href="/favicon/favicon-32x32.png"
      />
      <link
        rel="icon"
        type="image/png"
        sizes="16x16"
        href="/favicon/favicon-16x16.png"
      />
      <link rel="manifest" href="/site.webmanifest" />
      <link
        rel="mask-icon"
        href="/favicon/safari-pinned-tab.svg"
        color="#5bbad5"
      />
      <meta name="msapplication-TileColor" content="#da532c" />
      <meta name="theme-color" content="#ffffff" />
    </>
  );
}

希望这是足够的信息,但请让我知道,如果还需要什么。
先干杯。

jdgnovmf

jdgnovmf1#

title不应该用在_document.js的Head中,而应该放在_app中,如下面的语句所示:nextjs.org docs

相关问题