[英]How use a mutation function in a action function in Vuex?
我有这个Vuex
:
export default new Vuex.Store({
state: {
userInfo: {
nit_ID: { ID: '', Desc: '' },
userName: { ID: '', Desc: '' },
typeDocument: { ID: '', Desc: '' },
document: '',
},
globalPublicKey: 'ASDFGHJKL1234567890',
},
mutations: {
updateUserInfo(state, payload) {
state.userInfo = payload;
},
},
getters: {
userInfo: (state) => { return state.userInfo; },
},
actions: {
validateUserSession(context) {
var valido = false;
try {
let storageInfo = JSON.parse(
sjcl.decrypt(context.state.globalPublicKey, localStorage.userInfo)
);
if (localStorage.userToken === storageInfo.token) {
context.mutations.updateUserInfo(storageInfo);
valido = true;
}
} catch (e) {
console.error(e);
}
return valido;
},
},
})
但问题是,我不能访问到mutation
updateUserInfo()
我知道这是很容易解决的,只能做updateUserInfo
过程中我的动作,但问题是我如何使用一个mutation
成一个action
?
在VueJS中,您可以通过调用context.commit来从动作中调用变异 ,如下所示:
context.commit('mutationName', params)
如果未将参数传递给突变,则可以省略params 。
此处的更多信息: vuex.vuejs.org/guide/actions.html
实际上,您从任何地方都可以通过commit调用一个突变-但建议使用操作 (因此派出一个action )来依次提交数据(实际上是改变状态)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.