Я пытаюсь реализовать пакет Vuex i18n в моем приложении Nuxt.В моем файле nuxt.conf.js в массиве плагинов у меня есть:
{
src: '@/plugins/i18n.js',
ssr: false
},
plugins / i18n.js файл:
import Vue from "vue";
import vuexI18n from "vuex-i18n/dist/vuex-i18n.umd.js";
import toEnglish from "../translations/toEnglish";
import toSpanish from "./../translations/toSpanish";
import toGerman from "./../translations/toGerman";
export default ({ store }) => {
Vue.use(
vuexI18n.plugin,
store,
{
onTranslationNotFound: function (locale, key) {
console.warn(`vuex-i18n :: Key '${key}' not found for locale '${locale}'`)
}
}
);
// register the locales
Vue.i18n.add('en', toEnglish);
Vue.i18n.add('de', toGerman);
Vue.i18n.add('es', toSpanish);
// Set the start locale to use
Vue.i18n.set('de');
Vue.i18n.fallback('en');
}
Последняя вещь - мой магазин.Я использую классический режим магазина vuex в Nuxt:
import Vuex from "vuex";
const store = () => {
return new Vuex.Store({
state: () => ({
currentLanguage: ''
}),
mutations: {
changeLang(state, response) {
if (response) {
console.log(this);
state.currentLanguage = response;
this.i18n.set(response);
}
}
}
})
};
export default store;
Как вы можете видеть в файле магазина в мутации, я пытаюсь получить доступ к плагину i18n с ключевым словом this
.К сожалению, при печати ошибка в консоли:
Ошибка типа: невозможно прочитать «набор» свойств неопределенного
this
, который я утешал также внутри мутации: