在vuex 内部的 mutations 里面一个方法想调用另一个方法可以吗

图片描述

cust_down 定时器小于1 就调用clear的方法 如何在内部调用啊 我尝试了各种写法都报错 还是说vuex根本不提倡这种写法啊

阅读 23.8k
4 个回答

action里做吧,类似:

action

let timerId;
export const countdown = function({dispatch, state}) {
    timerId = setInterval(function() {
        dispatch('COUNT_DOWN');
        if(state.count < 1){
            clearInterval(timerId);
        }
    }, 1000);
};

mutation

const mutations = {
    ['COUNT_DOWN'](state) {
        state.count--;
    }
};

['STOP'](state)
改成 this.STOP(state)
试试,

let obj = {
    ['hello']() {
        console.log('hello world');
    },
    ['add'](x) {
        console.log(x+1);
        this.hello();
    }
}

// obj.hello();
obj.add(1);

以上代码可以正确运行的

mutations只能通过dispatch来调用...

把定时器放在action中, mutations只改变数据

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题