Next.js 抛出错误:错误:在页面文件夹内使用 _document.js 时未安装 NextRouter

beh*_*ani 4 javascript reactjs next.js

我希望能够根据当前区域设置自定义 HTML。我创建了一个_document.js内部pages目录。我使用了这段代码:

import { Html, Head, Main, NextScript } from 'next/document'
import { useRouter } from 'next/router'

export default function Document() {
  
  const { locale } = useRouter();

  return (
    <Html>
      <Head />
      <body>
        <Main />
        <NextScript />
      </body>
    </Html>
  )
}
Run Code Online (Sandbox Code Playgroud)

但我收到这个错误:

错误:错误:NextRouter 未安装。https://nextjs.org/docs/messages/next-router-not-mounted

当我访问指定的 URL 时,我看到他们说我正在使用外部逻辑<Main />。那么,我怎样才能进入locale内部呢_document.js

我发现NextRouter 没有安装 Next.JS但即使使用next/navigation对我来说也不起作用,并且我收到此错误:

错误:预期要安装的应用程序路由器不变

Yil*_*maz 9

它发生在我的app目录的客户端组件中。

而不是这个

import { useRouter } from 'next/router'
Run Code Online (Sandbox Code Playgroud)

进口于

import { useRouter } from "next/navigation";
Run Code Online (Sandbox Code Playgroud)