这是我的 vuex 根存储。
export default new Vuex.Store({
state: {
account: {}
},
mutations: {
set_account(state,payload) {
console.log("I AM INSIDE MUTATIONS", )
}
},
actions: {
setAccount({
commit
}, payload) {
return new Promise((resolve, reject) => {
commit(set_account, payload)
resolve()
})
}
},
plugins: [vuexLocal.plugin],
modules: {
auth,
update
}
});
在设置帐户操作之后,我提交了 set_account
突变。但是它说,
set_account is not defined
为什么会这样?
最佳答案
尝试将 commit()
与 type 一起使用,第一个参数是一个等于 'set_account'
的字符串,即相应的名称 Action 函数名称:
export default new Vuex.Store({
state: {
account: {}
},
mutations: {
set_account(state,payload) {
console.log("I AM INSIDE MUTATIONS", )
}
},
actions: {
setAccount({
commit
}, payload) {
return new Promise((resolve, reject) => {
commit('set_account', payload)
resolve()
})
}
},
plugins: [vuexLocal.plugin],
modules: {
auth,
update
}
});
来自 Vuex documentation提交:
commit(type: string, payload?: any, options?: Object)
type
,第一个参数应该是一个字符串,在这种情况下需要匹配 set_account
的函数名称。如果它不是字符串,它会尝试计算在当前执行上下文中实际上未定义的表达式 set_account
。
希望对您有所帮助!
关于javascript - vuex 不识别突变,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53927450/