javascript - 有没有办法在其 Action 或突变中获取 nameSpaced vuex 模块的名称?

标签 javascript vue.js vuex vuex-modules

我的应用程序中有多个带有 nameSpaced: true 的 vuex 模式。
在模块的 Action 或突变中,我想知道父模块的名称。

假设我有 2 个模块,“a”和“b”,我将突变称为

this.$store.commit("a/setName", name);
this.$store.commit("b/setName", name);

现在在 setName 函数中,我想知道调用 nameSpace 是什么?
是'a'还是'b'?

最佳答案

目前这仍然是 vuex 的未解决问题。 ,如您在此处看到的:Access module namespace from within module #1244 .此请求有很多解决方法,但我想根据您提供的代码向您展示一个简单的解决方法。
这个:

this.$store.commit("a/setName", name);
this.$store.commit("b/setName", name);
...可能是这样的:
this.$store.dispatch('a/setName', {namespace: "a", data: name})
this.$store.dispatch('b/setName', {namespace: "b", data: name})
是的,这意味着您需要手动应用您正在调用的命名空间的名称,但在您的示例中,您已经这样做了。在您的操作中,可能是这样的:
setName({commit}, object) {
        console.log(object.namespace); // submitted namespace
        commit('SET_THIS_NAME', object.data); // your data
    }
请注意,这只是一种解决方法,因为官方仍然无法访问 vuex 中的命名空间。模块。因此,这不是官方方式,而是一种解决方法。

关于javascript - 有没有办法在其 Action 或突变中获取 nameSpaced vuex 模块的名称?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55514208/

相关文章:

javascript - 如何使用 vee-validate 和 vue-i18n 翻译字段名称

javascript - 当调用内部函数时 Firebug 崩溃

javascript - 通过 json 结果在输入下附加表单验证消息

javascript - 如何将用户定义的属性传递给可能尚不存在的Javascript对象?

javascript - Vue中用requestAnimationFrame观察滚动位置

javascript - 如何在 axios(vue.js) 中使用动态 auth-header?

javascript - 更新多个文档/将键及其值添加到新数组中

javascript - Vue2 组件方法中出现错误,但从控制台调用时仍有效

unit-testing - 使用 Vuex 的 Vue.js-electron 应用程序的设置测试

vue.js - 即使命名空间为 :false,vuex mapState 是否始终需要模块名称作为参数