关于vuex store.dispatch在不同模块中可以触发多个 action
发布于 4个月前 作者 rickon 824 次浏览 来自 问答

https://vuex.vuejs.org/zh-cn/actions.html最后有一句:一个 store.dispatch 在不同模块中可以触发多个 action 函数。在这种情况下,只有当所有触发函数完成后,返回的 Promise 才会执行。如何理解?

我现在有一个表单,这个表单分成了多个components。在提交表单前每个component都需要做验证,验证的过程是异步的,只有所有模块验证成功后才可以提交表单。 我的想法是:在store中的一个module中注册一个action,然后在每个module中做完校验后都dispatch这个action。一个比较粗糙的方式是同时注册一个state和一个mutation,state表明已经验证的模块数量,每次触发action,action都会commit mutation把state+1,只要watch这个state===module的数量时就表明所有模块都已经验证完了。

还有没有更好的方式判断该表单中的所有模块都已经触发了这个action呢?

1 回复

其实如果以我上面所讲的思路的话不需要action,只要直接触发mutation就足够了。

回到顶部