Nee*_*pal 9 javascript vue.js vuex vuex-modules
我的应用程序中有多个带有 nameSpaced: true 的 vuex 模块。在模块的动作或变化中,我想知道父模块的名称。
说我有 2 个模块,'a' 和 'b',我称之为突变
this.$store.commit("a/setName", name);
this.$store.commit("b/setName", name);
Run Code Online (Sandbox Code Playgroud)
现在在 setName 函数中,我想知道调用的 nameSpace 是什么?是 'a' 还是 'b' ?
目前,这仍然是 的一个悬而未决的问题vuex,正如您在此处看到的:从模块 #1244 内访问模块名称空间。对于此请求有很多解决方法,但我想根据您提供的代码向您展示一种简单的解决方法。
这:
\nthis.$store.commit("a/setName", name);\nthis.$store.commit("b/setName", name);\nRun Code Online (Sandbox Code Playgroud)\n...可能是这样的:
\nthis.$store.dispatch(\'a/setName\', {namespace: "a", data: name})\nthis.$store.dispatch(\'b/setName\', {namespace: "b", data: name})\nRun Code Online (Sandbox Code Playgroud)\n是的,这意味着您需要手动应用您正在调用的名称空间的名称,但在您的示例中您已经这样做了。在你的行动中,它可能是这样的:
\nsetName({commit}, object) {\n console.log(object.namespace); // submitted namespace\n commit(\'SET_THIS_NAME\', object.data); // your data\n }\nRun Code Online (Sandbox Code Playgroud)\n请注意,这只是一种解决方法,因为 \xc2\xb4t 仍然没有官方的可能性来访问模块内的命名空间vuex。所以这不是\xc2\xb4t 官方方式,而是一种解决方法。
| 归档时间: |
|
| 查看次数: |
373 次 |
| 最近记录: |