我正在尝试从vue组件调用api。我正在通过vuex商店打电话(因为我读到这是一个很好的做法)。
在存储操作中,我想与我在vue实例中作为mixin函数的错误处理函数进行交互。但是,如果我将完整的vue实例传递给商店调用,我只能这样做:this.$store.dispatch('store/get', this);
对mixin的调用是这样的:
get: function(context, object) {
...
object.catchError(error)
我想避免在调度中传递this
,但仍然可以访问mixin函数。这是可能的还是应该以不同的方式做事?
答案 0 :(得分:0)
试试这个: 像这样调用动作:
this.$store.dispatch('store/get')
.then(r => {
// r contains the result, but you can call here the getter as well..
})
.catch(e => {
// catch every error here, you can handle here the error.
});
getter函数是这样的:
get: function(context) {
return axios.get(/api/call/get)
.then(r => {
... // mutations, conditions of data check.. throwing errors..
return r;
})
.catch(e => {
throw e;
})
}
我希望我的想法很清楚,但如果不是,请评论你的问题! :)