【问题标题】:TypeError: this.Vue.axios is undefined when using axios HTTP driverTypeError: this.Vue.axios 在使用 axios HTTP 驱动时未定义
【发布时间】:2020-09-06 11:47:37
【问题描述】:

在 Axios HTTP 驱动程序中使用 vue-auth (vue-auth on GitHub) 我在浏览器控制台中收到以下错误:

TypeError: this.Vue.axios is undefined

ma​​in.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,但它再次不起作用。

【问题讨论】:

    标签: vue.js vue-auth


    【解决方案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 模块中。

    【讨论】:

      猜你喜欢
      • 2021-05-22
      • 1970-01-01
      • 1970-01-01
      • 2020-08-23
      • 1970-01-01
      • 2017-09-27
      • 2021-08-24
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多