我的行动有以下设置:
Characters
我希望能够从另一个内部调用一个操作,因此在此示例中,我希望能够从get1: ({commit}) => {
//things
this.get2(); //this is my question!
},
get2: ({commit}) => {
//things
},
内调用get2()
。这是可能的,如果是的话,我该怎么做?
答案 0 :(得分:134)
您可以访问第一个参数中传递的对象中的dispatch
方法:
get1: ({ commit, dispatch }) => {
dispatch('get2');
},
中介绍了这一点
答案 1 :(得分:7)
可以通过第一个参数(上下文)访问 dispatch 方法:
export const actions = {
get({ commit, dispatch }) {
dispatch('action2')
}
}
但是,如果您使用命名空间,则需要指定一个选项:
export const actions = {
get({ commit, dispatch }) {
dispatch('action2', {}, { root: true })
}
}
答案 2 :(得分:3)
用于不需要有效载荷的动作
actions: {
BEFORE: async (context, payload) => {
},
AFTER: async (context, payload) => {
await context.dispatch('BEFORE');
}
}
对于需要有效负载
的操作actions: {
BEFORE: async (context, payload) => {
},
AFTER: async (context, payload) => {
var payload = {}//prepare payload
await context.dispatch('BEFORE', payload);
}
}
答案 3 :(得分:0)
export actions = {
GET_DATA (context) {
// do stuff
context.dispatch('GET_MORE_DATA');
},
GET_MORE_DATA (context) {
// do more stuff
}
}
答案 4 :(得分:0)
我们也可以在调度时传递参数。
dispatch('fetchContacts', user.uid);