1

vue-authGitHub 上的 vue-auth)与 Axios HTTP 驱动程序一起使用,我在浏览器控制台中收到以下错误:

TypeError: this.Vue.axios is undefined

main.js

import Vue from "vue";
import App from "./App.vue";
import axios from "axios";
import "./libs/vue-auth";

./libs/vue-auth.js

import Vue from "vue";
import vueAuth from "@websanova/vue-auth";
import bearer from "@websanova/vue-auth/drivers/auth/bearer";
import axiosHttp from "@websanova/vue-auth/drivers/http/axios.1.x";
import vueRouter from "@websanova/vue-auth/drivers/router/vue-router.2.x";

// Vue.axios = axios;

Vue.use(vueAuth, {
  auth: bearer,
  http: axiosHttp,
  router: vueRouter
  // ...
});

Vue.axios = axios;乍一看,删除评论似乎有效。所以我想搬到Vue.axios = axios;那里,main.js但又一次它不起作用。

4

1 回答 1

1

Vue.axios可以手动分配,也可以使用vue-axios插件分配。由于@websanova/vue-auth/drivers/http/axios.1.x期望它存在于插件初始化:

import Vue from 'vue'
import axios from 'axios'
import VueAxios from 'vue-axios'
...

Vue.use(VueAxios, axios)
Vue.use(vueAuth, ...)

移动Vue.use(VueAxios, axios)到 main.js 将不起作用,因为它应该在./libs/vue-auth导入之前进行评估,并且根据 JS 规范它不能在导入之前。Vue.use(...)应该一起移动到 main.js,或者它们都应该位于./lib模块中。

于 2020-05-20T08:03:23.593 回答