2017-04-25 40 views
0
const store = new Vuex.Store({ 
    state: { 
     user: { 
      userName:'', 
      loggedInStatus: true, 
      authToken: '' 
     } 
    }, 

    mutations: { 
     addWebToken: function(state, webToken){ 
      state.user.authToken = webToken; 
     }, 
     removeWebToken: function(state){ 
      state.user.authToken = ''; 
     } 
    }, 
    methods:{ 
     getToken:function(){ 
      return store.state.user.authToken; 

     } 
    }, 
    plugins: [createPersistedState()] 

}) 

我已經包含了 「vuex-persistedstate.js」,但它顯示在控制檯的錯誤:Vuex插件錯誤

Uncaught TypeError: Cannot use 'in' operator to search for 'default' in undefined 
    at vuex-persistedstate.js:17 

Uncaught ReferenceError: createPersistedState is not defined 

當我按Ctrl +點擊createPersistedState()調用我可以導航到該文件。

+0

你嘗試,包括它沒有'.js'擴展。不知道它會有什麼區別,但我假設如果模塊在node_modules內部,那麼從'vuex-persistedstate''執行'import createPersistedState'應該包含它的'index.js'文件,而不是它會嘗試加載的任何東西。這可能也會解釋爲什麼'createPersistedState未定義' - 它可能找不到它,因爲它正在尋找錯誤的東西。 – PeterTheLobster

+0

我不使用節點,npm。我正在使用普通的js。 –

+0

我不確定,但在我看來,插件是用npm構建的。如果你看看[源代碼](https://github.com/robinvdvleuten/vuex-persistedstate/blob/master/dist/vuex-persistedstate.js),在我看來它似乎是建立在一個支持的框架內進口/需要。看第12-15行。 – PeterTheLobster

回答

0

vuex-persistedstate.js需要依賴於lodash和object-path。 vuex-persistedstate.js第17行上的這個 錯誤是缺少的lodash依賴項。 如果您已經添加了lodash,請確保它已加載到vuex-persistedstate模塊中。

如果你真的想用普通的js。您必須定義window.merge = _.mergewindow.objectPath必須使用正確的節點模塊進行定義。您寧可使用webpack正確使用此npm模塊。

更多來源:https://github.com/robinvdvleuten/vuex-persistedstate/issues/23