2017-08-02 79 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