我的操作设置如下:
get1: ({commit}) => { //things this.get2(); //this is my question! }, get2: ({commit}) => { //things },
我希望能够从另一个动作中调用一个动作,所以在这个例子中,我希望能够从get1()中调用get2()。这可能吗?如果可能,我该怎么做?
get1()
get2()
r7xajy2e1#
您可以访问传入第一个参数的对象中的dispatch方法:
dispatch
get1: ({ commit, dispatch }) => { dispatch('get2'); },
这在文档中有所涉及。
2izufjch2#
你可以通过第一个参数(context)访问dispatch方法:
export const actions = { get({ commit, dispatch }) { dispatch('action2') } }
但是,如果使用命名空间,则需要指定一个选项:
export const actions = { get({ commit, dispatch }) { dispatch('action2', {}, { root: true }) } }
h7appiyu3#
对于不需要有效负载的操作
actions: { BEFORE: async (context, payload) => { }, AFTER: async (context, payload) => { await context.dispatch('BEFORE'); } }
对于需要payload的操作
actions: { BEFORE: async (context, payload) => { }, AFTER: async (context, payload) => { var payload = {}//prepare payload await context.dispatch('BEFORE', payload); } }
yr9zkbsy4#
我们也可以在分派时传递参数。
dispatch('fetchContacts', user.uid);
jrcvhitl5#
export actions = { GET_DATA (context) { // do stuff context.dispatch('GET_MORE_DATA'); }, GET_MORE_DATA (context) { // do more stuff } }
5条答案
按热度按时间r7xajy2e1#
您可以访问传入第一个参数的对象中的
dispatch
方法:这在文档中有所涉及。
2izufjch2#
你可以通过第一个参数(context)访问dispatch方法:
但是,如果使用命名空间,则需要指定一个选项:
h7appiyu3#
对于不需要有效负载的操作
对于需要payload的操作
yr9zkbsy4#
我们也可以在分派时传递参数。
jrcvhitl5#