Vuex 不返回子模块

问题描述 投票:0回答:1

我有以下商店结构:

为了访问

orders
getter(这里
Array[0]
),我使用了:
store.getters['pages/my/orders/orders']
,它在 Nuxt 2 (Vue 2) 上工作。

重构到 Vue 3 (Vuex 4) 后,我只能从浅层嵌套模块中获取 getter,即:

store.getters['auth/isLoggedIn'] // works, returns the getter
store.getters['pages/my/orders/orders'] // is undefined despite being shown in Vue DevTools

事实上

store.getters
没有任何
pages
getters,它只返回根 getters,或模块 getters(但不返回子模块)。

编辑:有时需要写下来才能注意到问题。从技术上讲,

pages/my/orders/orders
确实不是吸气剂,而是状态的一部分。但为什么
store.getters['pages/my/orders/orders']
能在 Nuxt 上工作呢?

编辑 2:实际上我们内部也有

orders
getter,我不知道为什么 Vue DevTools 没有显示它:/
    

vue.js vuejs3 vuex vuex-modules vuex4
1个回答
0
投票
pages/my/orders

需要位于每个具有子模块的模块中。如果没有它,则不会考虑子模块吸气剂。由于没有警告或错误,因此很容易被忽视。

因此,就我而言,为了能够访问 

namespaced: true

,我必须添加

store.getters['pages/my/orders/orders']
pages
my
模块:
orders

© www.soinside.com 2019 - 2024. All rights reserved.