2017-08-02 47 views
1

我收到关于使用vue-i18n依赖性的错误。如何获得商店变异的全局变量

我应该如何得到main.js的const的国际化到root.js(店)

我使用

  • Vuejs 2.X
  • Vue的,国际化的最新
  • Vuex For Vuejs 2.X

在main.js(VUE-CLI)

Vue.use(VueI18n) 

const i18n = new VueI18n({ 
    locale: 'en', 
    messages: { 
     en: { 
      message: en 
     }, 
     cn: { 
      message: cn 
     } 
    } 
}) 

new Vue({ 
    store, 
    el: '#app', 
    i18n, 
    router, 
    template: '<App/>', 
    components: { App } 
}) 

在root.js(店)

export const mutations = { 
    [types.SET_LANGUAGE] (state, data) { 
     console.log(i18n.locale) // 'i18n' is not defined 
     localStorage.setItem('language', data) 
    }, 
} 
+1

把它放在它自己的文件中并导出它。这样你可以导入/需要它在需要 – Phil

+0

谢谢,但我仍然不明白它。您介意使用代码更改来显示我吗? – tommychoo

回答

2

正如我在评论中提及,把它放在它自己的文件,如i18n.js

import Vue from 'vue' 
import VueI18n from 'vue-i18n' // or whatever the module is called 

Vue.use(VueI18n) // you don't need this in main.js 

export default new VueI18n({ 
    locale: 'en', 
    messages: { 
    en: { 
     message: en 
    }, 
    cn: { 
     message: cn 
    } 
    } 
}) 

然后,在main.jsroot.js ...

import i18n from './i18n' 
+0

非常感谢!学到了 – tommychoo