Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vue.js/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vue.js 如何在Vue js中全局分配Axios?_Vue.js_Vuejs2_Vue Component - Fatal编程技术网

Vue.js 如何在Vue js中全局分配Axios?

Vue.js 如何在Vue js中全局分配Axios?,vue.js,vuejs2,vue-component,Vue.js,Vuejs2,Vue Component,如何在Vue js中全局分配Axios 我正在尝试加载Axios,以便可以在任何组件中访问它 我的尝试如下: main.js import axios from 'axios' Vue.prototype.$axios = axios buyers(data) { return new Promise(function (resolve, reject) { this.$axios.get(`/buyers?${data}`) .then(res

如何在Vue js中全局分配Axios

我正在尝试加载Axios,以便可以在任何组件中访问它

我的尝试如下:

main.js

import axios from 'axios'
Vue.prototype.$axios = axios
buyers(data) {
    return new Promise(function (resolve, reject) {
        this.$axios.get(`/buyers?${data}`)
            .then(response => {
                resolve(response.data)
            })
            .catch(error => {
                reject(error.response.data)
            })
    })
}
home.js

import axios from 'axios'
Vue.prototype.$axios = axios
buyers(data) {
    return new Promise(function (resolve, reject) {
        this.$axios.get(`/buyers?${data}`)
            .then(response => {
                resolve(response.data)
            })
            .catch(error => {
                reject(error.response.data)
            })
    })
}
index.vue?6ced:203未捕获(承诺中)类型错误:无法读取 未定义的属性“$axios”

试试这个:

install(vue, opts) {
      vue.prototype.$axios = $axios;
    }
然后使用($axios)如果您想要全局使用

请尝试以下方法:

install(vue, opts) {
      vue.prototype.$axios = $axios;
    }

然后
Vue.use($axios)
如果您想在全球范围内使用

我想您正在寻找这样的产品:

买家(数据){
返回此文件。$axios.get(`/pullers?${data}`)
。然后(响应=>{
返回响应.data
})
.catch(错误=>{
抛出错误.response.data
})
})
}
通常,如果您发现自己使用构造函数创建了一个新的承诺,那么您可能做错了什么。只有在包装其他不使用承诺的代码时才需要这样做

您看到的错误原因是额外函数更改了
this
的值。每次输入新函数时,
的值都会更改

您也可以通过更改此行来修复它:

返回新承诺(函数(解析、拒绝){
为此:

返回新承诺((解决、拒绝)=>{

使用箭头函数将保留周围的
这个
值,以便它仍然引用组件。

我想您正在寻找类似这样的内容:

买家(数据){
返回此文件。$axios.get(`/pullers?${data}`)
。然后(响应=>{
返回响应.data
})
.catch(错误=>{
抛出错误.response.data
})
})
}
通常,如果您发现自己使用构造函数创建了一个新的承诺,那么您可能是做错了什么。只有在包装其他不使用承诺的代码时才需要这样做

您看到的错误原因是额外函数更改了
的值。每次输入新函数时,
的值都会更改

您也可以通过更改此行来修复它:

返回新承诺(函数(解析、拒绝){
为此:

返回新承诺((解决、拒绝)=>{

使用箭头函数将保留周围的
this
值,以便它仍然引用组件。

最可能的问题是,您对
使用了一个正常的
函数
,然后使用了
回调。输入一个新函数会更改
this
的值,因此它不会引用您的组件使用箭头函数应该可以。如果需要进一步的帮助,您需要发布周围的代码。请注意,错误消息说它无法读取未定义的“
$axios
”。它并不是说
$axios
未定义。@skille。我编辑了代码,问题很可能是您使用了正常的
函数n
用于
然后
回调。输入新函数会更改
的值,因此它不会引用您的组件。如果改用箭头函数,应该可以。如果需要进一步帮助,您需要发布周围的代码。请注意,错误消息表示无法读取UND的“
$axios
”罚款。它并没有说,
$axios
未定义。@skille。我编辑了代码不确定您为什么这么说,请参见此处:。例如,路由器对象不是组件不确定您为什么这么说,请参见此处:。例如,路由器对象不是组件