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

Jac*_*rie 7 javascript i18next

i18next通过传递语言代码(en-UK)来调用更改语言函数,如下所示:

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
  });
};
Run Code Online (Sandbox Code Playgroud)

我遇到以下问题:

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)
Run Code Online (Sandbox Code Playgroud)

i18next我认为尝试执行该操作时出现了问题:

_this4.languages = _this4.services.languageUtils.toResolveHierarchy(l);
Run Code Online (Sandbox Code Playgroud)

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

Oli*_*ann 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()
Run Code Online (Sandbox Code Playgroud)
<script src="https://unpkg.com/i18next/i18next.min.js"></script>
Run Code Online (Sandbox Code Playgroud)

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