vuex mapState 是否总是需要模块名称作为参数,即使 namespaced:false

does vuex mapState always require module name as argument even if namespaced:false

我期望如果我有一个模块有 namespaced:false(我认为这也是默认的)那么它的 state 应该是 "global" 或 "root" 命名空间,我可以执行 " ...mapState('someStateAttribute') 然后引用 someStateAttribute 但似乎我必须使用 ...mapState('modulename','someStateAttribute') 否则它会不工作。

仅此而已吗?还是我遗漏了什么?

看看mapState's signature:

mapState(namespace?: string, map: Array<string> | Object<string | function>): Object

这意味着第一个参数 namespace 是可选的。但是,如果您提供一个字符串作为第一个参数,它将是 namespace.

要实现你想要的,你应该做的:

...mapState(['someStateAttribute'])