actions.js
export const a = function({ dispatch, state }){
console.log('aaaaaa');
console.log(state);
}
export const b = function({ dispatch, state }, param){
dispatch('A', param);
a({ dispatch, state });
}
这样的话可以成功调用到 action a 但是 a 拿到的state还是旧的,请问该如何正确调用其他 action 呢?
什么叫成功调用了
a
,然后b
里的state
还是旧的?按照
vuex
的原则,action
里应该dispatch
变化的数据给指定的mutation
,然后mutation
里改变state
。所以无论如何,如果你正确编码,
b
里的state
都不可能是旧的。 唯一的解释就是你在a
里,没有dispatch
相应的mutation
补充:
所以问题的最后是在错误的地方(
mutation
)里使用了异步方法,文档已经明确说了:文档地址:action