从商店调用mixin函数

时间:2018-05-17 09:15:32

标签: vue.js mixins vuex

我正在尝试从vue组件调用api。我正在通过vuex商店打电话(因为我读到这是一个很好的做法)。

在存储操作中,我想与我在vue实例中作为mixin函数的错误处理函数进行交互。但是,如果我将完整的vue实例传递给商店调用,我只能这样做:this.$store.dispatch('store/get', this);

对mixin的调用是这样的:

get: function(context, object) {
       ...
            object.catchError(error)

我想避免在调度中传递this,但仍然可以访问mixin函数。这是可能的还是应该以不同的方式做事?

1 个答案:

答案 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;
    })
}

我希望我的想法很清楚,但如果不是,请评论你的问题! :)