Error with i18n (Error: You are passing an undefined module! Please check the object you are passing to i18next.use())
Error with i18n (Error: You are passing an undefined module! Please check the object you are passing to i18next.use())
我正在尝试在我的 Gatsby 项目中设置 i18n。
我一直在逐步学习本教程:
https://www.gatsbyjs.org/blog/2017-10-17-building-i18n-with-gatsby/
首先我下载了需要的包:
npm i -S i18next i18next-xhr-backend i18next-browser-languagedetector react-i18next
然后我设置了 i18n 组件
import i18n from "i18next"
import Backend from "i18next-xhr-backend"
import LanguageDetector from "i18next-browser-languagedetector"
import { reactI18nextModule } from "react-i18next"
i18n
.use(Backend)
.use(LanguageDetector)
.use(reactI18nextModule)
.init({
fallbackLng: "en",
// have a common namespace used around the full app
ns: ["translations"],
defaultNS: "translations",
debug: true,
interpolation: {
escapeValue: false, // not needed for react!!
},
react: {
wait: true,
},
})
export default i18n
在我的布局组件中导入它:
import React from "react"
import "./layout.scss"
import NavMenu from "./NavMenu/navMenu"
import i18n from './i18n/i18n'
export default function Layout({ children }) {
return (
<div className="container">
<NavMenu />
{children}
</div>
)
}
但是,当我 运行 我的应用程序出现以下错误时:
有人知道问题出在哪里吗?
从 react-i18next
导入错误。应该是
import { initReactI18next } from "react-i18next"
和
.use(initReactI18next)
如果您尝试导入未导出的内容,则该值是未定义的,然后 use
会给出您所看到的消息。
它在 react-i18next
的早期版本中似乎被称为 reactI18nextModule
,这就是为什么您可以找到使用它的教程的原因。
我正在尝试在我的 Gatsby 项目中设置 i18n。
我一直在逐步学习本教程:
https://www.gatsbyjs.org/blog/2017-10-17-building-i18n-with-gatsby/
首先我下载了需要的包:
npm i -S i18next i18next-xhr-backend i18next-browser-languagedetector react-i18next
然后我设置了 i18n 组件
import i18n from "i18next"
import Backend from "i18next-xhr-backend"
import LanguageDetector from "i18next-browser-languagedetector"
import { reactI18nextModule } from "react-i18next"
i18n
.use(Backend)
.use(LanguageDetector)
.use(reactI18nextModule)
.init({
fallbackLng: "en",
// have a common namespace used around the full app
ns: ["translations"],
defaultNS: "translations",
debug: true,
interpolation: {
escapeValue: false, // not needed for react!!
},
react: {
wait: true,
},
})
export default i18n
在我的布局组件中导入它:
import React from "react"
import "./layout.scss"
import NavMenu from "./NavMenu/navMenu"
import i18n from './i18n/i18n'
export default function Layout({ children }) {
return (
<div className="container">
<NavMenu />
{children}
</div>
)
}
但是,当我 运行 我的应用程序出现以下错误时:
有人知道问题出在哪里吗?
从 react-i18next
导入错误。应该是
import { initReactI18next } from "react-i18next"
和
.use(initReactI18next)
如果您尝试导入未导出的内容,则该值是未定义的,然后 use
会给出您所看到的消息。
它在 react-i18next
的早期版本中似乎被称为 reactI18nextModule
,这就是为什么您可以找到使用它的教程的原因。