如何在Vue js中全局分配Axios?
我正在尝试加载Axios,以便可以在任何组件中访问它。
我正在尝试如下:
main.js
id col_x rn col_y
0 1 h11 1.0 h1
1 2 h2 1.0 h2
2 3 h% 1.0 h3
3 3 h3 2.0 h33
4 4 h4 1.0 h4
5 6 h6 1.0 h6
home.js
import axios from 'axios'
Vue.prototype.$axios = axios
index.vue?6ced:203未捕获(已承诺)TypeError:无法读取 未定义的属性“ $ axios”
答案 0 :(得分:1)
尝试一下:
install(vue, opts) {
vue.prototype.$axios = $axios;
}
如果需要全局,请Vue.use($axios)
答案 1 :(得分:1)
我认为您正在寻找这样的东西:
buyers(data) {
return this.$axios.get(`/buyers?${data}`)
.then(response => {
return response.data
})
.catch(error => {
throw error.response.data
})
})
}
通常,如果您发现自己使用构造函数创建了一个新的Promise,则可能是您做错了什么。仅在包装不使用Promises的其他代码时才需要这样做。
您看到的错误的原因是额外的函数更改了this
的值。每次输入新功能时,this
的值都会改变。
您还可以通过更改以下行来修复它:
return new Promise(function (resolve, reject) {
对此:
return new Promise((resolve, reject) => {
使用箭头函数将保留周围的this
值,使其仍引用该组件。