我有一个用 React 编写的项目并支持 hooks。我正在尝试使用react-i18next 来支持翻译。一切正常,因为我遵循了文档。
然而,当我想t()在助手/非组件 .js 文件上使用该函数时,我偶然发现了一些问题。然后,我通过直接从 init 文件导入 i18n 来解决这个问题,./i18n.ts如下所示
import i18n from 'i18next';
import { initReactI18next } from 'react-i18next';
i18n
.use(initReactI18next)
.init({
resources,
ns: [
'common',
'dashboard',
'landing'
],
defaultNS: 'common',
fallbackLng: 'en',
supportedLngs: ['de', 'en'],
interpolation: {
escapeValue: false,
},
});
export default i18n;
Run Code Online (Sandbox Code Playgroud)
我意识到我根本不必使用钩子,因为我可以在代码中的任何地方使用它,甚至在我的功能组件文件上
import i18n from "@root/i18n"
...
i18n.t('namespace:path')
Run Code Online (Sandbox Code Playgroud)
我想知道如果你可以像这样导入它,为什么建议使用useTranslation钩子/ HOC?withTranslation我读到useTranslation应用悬念,但似乎initReactI18next默认情况下也应用了悬念。
我很好奇不使用推荐的钩子/HOC 是否有任何副作用?