无法读取未定义的属性“toResolveHierarchy”

问题描述 投票:0回答:3

我通过传递语言代码(en-UK)来调用

i18next
更改语言函数:

var changeLng = function (varLng) {  
  i18next.changeLanguage('en', (err, t) => {
    if (err) return console.log('something went wrong loading', err);
    t('applog'); // -> same as i18next.t
  });
};

我遇到以下问题:

VM4081 i18next.js:1912 Uncaught TypeError: Cannot read property 'toResolveHierarchy' of undefined
    at setLng (VM4081 i18next.js:1912)
    at I18n.changeLanguage (VM4081 i18next.js:1927)
    at changeLng (VM4079 langUK.js:23)
    at HTMLImageElement.<anonymous> (VM4079 langUK.js:8)

我认为当

i18next
尝试执行该操作时出了问题:

_this4.languages = _this4.services.languageUtils.toResolveHierarchy(l);

但我看不出正确执行此操作需要什么。 预先感谢您的支持, 杰克

javascript i18next
3个回答
5
投票

您是否正确初始化了

i18next
?这段代码对我有用:

i18next.init({
  lng: 'en',
  debug: true,
  resources: {
    en: {
      translation: {
        "key": "hello world"
      }
    }
  }
}, function(err, t) {
  // initialized and ready to go!
  console.log("Ready to go!");
});

var changeLng = function(varLng) {
  i18next.changeLanguage('en', (err, t) => {
    if (err) return console.log('something went wrong loading', err);
    t('applog'); // -> same as i18next.t
  });
};

changeLng()
<script src="https://unpkg.com/i18next/i18next.min.js"></script>

编辑:从文档中获取此内容


0
投票

可能是由于

i18next
的导入错误或者尚未初始化造成的,例如“import i18n from 'i18next'”。 首先运行init函数,然后你可以运行changeLanguage。


0
投票

您可以简单地导入 ./i18n.js 并使用导出的 i18next 实例: 从 './i18n' 导入 i18next 像这样导入并使用 i18next 更改语言和 .on 函数。

© www.soinside.com 2019 - 2024. All rights reserved.