2017-07-02 61 views
3

對於由api_token vue-axios auth我使用助手文件api.js.如何訪問輔助函數中的Vuex存儲?

我得到錯誤 - 未捕獲TypeError:無法讀取未定義的屬性'getters'。

我認爲api.js助手看不到全局存儲--Vuex $ store。

在其他組件中,我不需要導入Vuex存儲,他可以在任何應用程序的地方使用。

如何在助手中使用this。$ storage?

//api.js 
import axios from 'axios' 

let api_token = this.$store.getters.get_api_token //got error! 


export function get(url) { 
    return axios({ 
     method: 'GET', 
     url: url, 
     headers: { 
      'Authorization': `Bearer ${api_token}` 
     } 
    }) 
} 

//Vuex 
import Vue from 'vue' 
import Vuex from 'vuex' 

Vue.use(Vuex); 

const store = new Vuex.Store({ 
    state: { 
     api_token: 'vnbnvnvnvb', 

    }, 
    getters: { 
     get_api_token(state){ 
      return state.api_token 
     } 
    }, 
}); 

export default store 


//App.vue 
import {get} from './helpers/api'; 
export default { 

    created() { 
     get(`/api/user/${1}`) 
      .then((res) => { 
       ///do it 
      }) 
      .catch((err) => { 
       console.log(err); 
      }) 

    } 
} 

回答