为了访问
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 没有显示它:/pages/my/orders
需要位于每个具有子模块的模块中。如果没有它,则不会考虑子模块吸气剂。由于没有警告或错误,因此很容易被忽视。
因此,就我而言,为了能够访问namespaced: true
,我必须添加
store.getters['pages/my/orders/orders']
、pages
、my
模块:orders