Как получить параметры URL-адреса при использовании пользовательского документа в NextJS - PullRequest
0 голосов
/ 14 июля 2020

Я использую Next JS для страниц SSR продукта, и эти страницы зависят от языка c. Я хотел бы установить свойство lang для объявления языка текста.

Пока что у меня есть:

import Document, { Html, Head, Main, NextScript } from "next/document"
import Router from "next/router"

class MyDocument extends Document {
  render() {
    const { lanaguage } = Router.router.query
    return (
      <Html lang={language}>
        <Head />
        <body className="antialiased text-white text-base font-sans">
          <Main />
          <NextScript />
        </body>
      </Html>
    )
  }
}

export default MyDocument

Однако Router.router всегда null при использовании Custom Документ (_document.js). Есть ли другой способ получить параметры / запрос URL-адреса при использовании настраиваемого документа?

1 Ответ

0 голосов
/ 14 июля 2020

Мне удалось решить эту проблему, используя:

import Document, { Html, Head, Main, NextScript } from "next/document"

class MyDocument extends Document {
  render() {
    const { lanaguage } = this.props.__NEXT_DATA__.query
    return (
      <Html lang={lanaguage}>
        <Head />
        <body className="antialiased text-white text-base font-sans">
          <Main />
          <NextScript />
        </body>
      </Html>
    )
  }
}

export default MyDocument

Я не уверен, что использование this.props.__NEXT_DATA__ - плохая практика. Однако в нем есть вся необходимая информация.

...