Vuex:如何在动作中正确添加调度的动作

时光

在通过saveDisplayLimitQuanity如下所示的分派操作发布帖子后,我进行了变异以显示横幅,然后5秒钟后将其隐藏。
我将不得不将此逻辑添加到每个分派的动作中,因此会产生很多重复的代码。

saveDisplayLimitQuantity: (context, data) => {
    return axios.post(data.url, {
        display_limit: data.display_limit
    })
    .then(response => {
        context.commit('setShowBanner', true);
        context.commit('setBannerMessage', ['Display Limit Quantity Successully Updated!']);
        context.commit('setBannerStatus', 'Success');
        setTimeout(() => {
            context.commit('setShowBanner', false);
            context.commit('setBannerMessage', null);
            context.commit('setBannerStatus', null);
        }, 5000)
    })
    .catch(err => {
        context.commit('setShowBanner', true);
        context.commit('setBannerMessage', ['Something Went Wrong.  Please try again']);
        context.commit('setBannerStatus', 'Error');
        setTimeout(() => {
            context.commit('setShowBanner', false);
            context.commit('setBannerMessage', null);
            context.commit('setBannerStatus', null);
        }, 5000)
    })
},

我想做一个动作,可以放入返回的Promise中,每次都可以调用此消息,并且只是传递一条消息。我尝试通过添加dispatch作为参数来实现此目的,但仍然无法正常工作:

saveDisplayLimitQuantity: (context, data, dispatch) => {
    return axios.post(data.url, {
        display_limit: data.display_limit
    })
    .then(response => {
        let data = {
             'status': 'Success', 
              'message': "Yay!"
        }
        dispatch('showBanner',data)
    })
    .catch(err => {
        let data = {
             'status': 'Error', 
              'message': "Please try again"
        }
        dispatch('showBanner',data)
    })
},

showBanner: (context,data) => {
    context.commit('showBanner', true);
    context.commit('bannerMessage', data.message);
    context.commit('bannerStatus', data.status);
}
马蒂亚斯

它不起作用,因为您无法showBanner正确访问该操作在第一个示例中,您曾经context.commit()访问过mutation因此,要访问,action您需要遵循相同的规则:

相反,传递的dispatch参数,你只需要调用action由它的context

context.dispatch('showBanner', data);

甚至更好地argument destructuringcontext对象使用它使您免于context一遍又一遍的呼叫

saveDisplayLimitQuantity({ dispatch }, data) {
   ... 
   dispatch('showBanner', data);
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Vuex:如何正确调用动作?

来自分类Dev

如何在Zend Framework 1中正确调用控制器/动作?

来自分类Dev

如何从效果/动作正确地链接调度其他动作

来自分类Dev

如何从子窗口调度动作?

来自分类Dev

如何在化简器中调度错误动作?

来自分类Dev

如何在Popoverview中添加UIBarButtonItem动作?

来自分类Dev

如何在动作脚本中添加setInterval()?

来自分类Dev

如何添加动作栏

来自分类Dev

如何在Vuex / Vues中的动作中调用另一个动作?

来自分类Dev

如何在redux的动作上调用动作?

来自分类Dev

Vuex - 创建全局方法来调度动作

来自分类Dev

如何使用 ruby 循环添加调度程序?

来自分类Dev

如何在MailMessage中正确添加CSS

来自分类Dev

如何在熊猫中正确添加图形

来自分类Dev

如何在UITablViewCell中正确添加ChildViewControllers?

来自分类Dev

如何在wordpress中正确添加简码?

来自分类Dev

调度新的redux动作时如何正确删除对象子字段?

来自分类Dev

即使正确地调度了另一个动作,如何调度一个动作?使用redux thunk(反应)

来自分类Dev

如何正确链接Vuex动作,并正确改变两次调用之间的状态?

来自分类Dev

如何停止事件调度冒泡的嵌套组件调度redux动作?

来自分类Dev

Symfony Easyadmin-如何在“ btn新动作”附近添加自定义动作?

来自分类Dev

从componentDidMount调度动作

来自分类Dev

如何在Redux Observable中调度一个动作,等待一秒钟,然后再调度两个动作?

来自分类Dev

如何在Android的动作栏下方添加阴影?

来自分类Dev

如何在PowerShell中添加事件动作处理程序

来自分类Dev

如何在Jenkins构建页面中添加动作

来自分类Dev

如何向UIButton添加动作

来自分类Dev

如何从SherlockFragment添加动作项

来自分类Dev

TYPO3-如何在调度程序任务中从控制器调用动作

Related 相关文章

  1. 1

    Vuex:如何正确调用动作?

  2. 2

    如何在Zend Framework 1中正确调用控制器/动作?

  3. 3

    如何从效果/动作正确地链接调度其他动作

  4. 4

    如何从子窗口调度动作?

  5. 5

    如何在化简器中调度错误动作?

  6. 6

    如何在Popoverview中添加UIBarButtonItem动作?

  7. 7

    如何在动作脚本中添加setInterval()?

  8. 8

    如何添加动作栏

  9. 9

    如何在Vuex / Vues中的动作中调用另一个动作?

  10. 10

    如何在redux的动作上调用动作?

  11. 11

    Vuex - 创建全局方法来调度动作

  12. 12

    如何使用 ruby 循环添加调度程序?

  13. 13

    如何在MailMessage中正确添加CSS

  14. 14

    如何在熊猫中正确添加图形

  15. 15

    如何在UITablViewCell中正确添加ChildViewControllers?

  16. 16

    如何在wordpress中正确添加简码?

  17. 17

    调度新的redux动作时如何正确删除对象子字段?

  18. 18

    即使正确地调度了另一个动作,如何调度一个动作?使用redux thunk(反应)

  19. 19

    如何正确链接Vuex动作,并正确改变两次调用之间的状态?

  20. 20

    如何停止事件调度冒泡的嵌套组件调度redux动作?

  21. 21

    Symfony Easyadmin-如何在“ btn新动作”附近添加自定义动作?

  22. 22

    从componentDidMount调度动作

  23. 23

    如何在Redux Observable中调度一个动作,等待一秒钟,然后再调度两个动作?

  24. 24

    如何在Android的动作栏下方添加阴影?

  25. 25

    如何在PowerShell中添加事件动作处理程序

  26. 26

    如何在Jenkins构建页面中添加动作

  27. 27

    如何向UIButton添加动作

  28. 28

    如何从SherlockFragment添加动作项

  29. 29

    TYPO3-如何在调度程序任务中从控制器调用动作

热门标签

归档