【问题标题】:How to call multiple namespaced Modules in Vuex如何在 Vuex 中调用多个命名空间模块
【发布时间】:2021-02-17 02:25:41
【问题描述】:

不知道怎么调用,多个NamespacedHelpers用vuex,我试过这个:

import { createNamespacedHelpers } from 'vuex'
const { mapActions, mapMutations } = createNamespacedHelpers(['payments', 'auth'])
methods: {
    ...mapActions(['registerBankData', 'updateBankData', 'getBankData'], ['login']),
    ...mapMutations(['setBankData']),
...
}

也试过这个:

import { createNamespacedHelpers } from 'vuex'
const { mapActions, mapMutations } = createNamespacedHelpers('payments', 'auth')
methods: {
    ...mapActions(['registerBankData', 'updateBankData', 'getBankData', 'login']),
    ...mapMutations(['setBankData']),
...
}

但不起作用..

【问题讨论】:

    标签: javascript vue.js vuex


    【解决方案1】:

    我相信你可以做到这一点

    import { createNamespacedHelpers } from 'vuex'
    const payments = createNamespacedHelpers('payments')
    const auth = createNamespacedHelpers('auth')
    
    methods: {
        ...payments.mapActions(['registerBankData', 'updateBankData', 'getBankData']),
        ...auth.mapActions(['authAction', 'login']),
        ...payments.mapMutations(['setBankData']),
    ...
    }
    
    

    【讨论】:

      【解决方案2】:

      试试这样的:

      import { mapMutations, mapActions } from 'vuex';
      
      export default {
        methods: {
          ...mapMutations({
            myMutation: 'myModule/myMutation',
          }),
          ...mapActions({
            myAction: 'myModule/myAction',
          }),
        }
      }
      

      【讨论】:

      • 是的,谢谢,效果很好,这是唯一的方法吗?
      • official documentation中还有其他选项,不过我更喜欢这种方式,因为它更简单。
      • 酷!谢谢兄弟。
      猜你喜欢
      • 2020-07-14
      • 2018-01-17
      • 2020-05-07
      • 2018-05-18
      • 1970-01-01
      • 2020-03-29
      • 2020-09-27
      • 2023-03-19
      相关资源
      最近更新 更多