我的行为有以下设置:
get1: ({commit}) => {
//things
this.get2(); //this is my question!
},
get2: ({commit}) => {
//things
},
Run Code Online (Sandbox Code Playgroud)
我希望能够从另一个内部调用一个动作,所以在这个例子中我希望能够get2()从内部调用get1().这是可能的,如果可以的话,我该怎么做?
tha*_*ksd 190
您可以访问dispatch第一个参数中传递的对象中的方法:
get1: ({ commit, dispatch }) => {
dispatch('get2');
},
Run Code Online (Sandbox Code Playgroud)
这在文档中有所涉及.
小智 11
您可以通过第一个参数(上下文)访问 dispatch 方法:
export const actions = {
get({ commit, dispatch }) {
dispatch('action2')
}
}Run Code Online (Sandbox Code Playgroud)
但是,如果您使用命名空间,则需要指定一个选项:
export const actions = {
get({ commit, dispatch }) {
dispatch('action2', {}, { root: true })
}
}Run Code Online (Sandbox Code Playgroud)
对于不需要有效负载的操作
actions: {
BEFORE: async (context, payload) => {
},
AFTER: async (context, payload) => {
await context.dispatch('BEFORE');
}
}
Run Code Online (Sandbox Code Playgroud)
对于确实需要有效负载的操作
actions: {
BEFORE: async (context, payload) => {
},
AFTER: async (context, payload) => {
var payload = {}//prepare payload
await context.dispatch('BEFORE', payload);
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
46054 次 |
| 最近记录: |