Dentro de un getter vuex sé que es posible acceder al estado desde otro módulo vuex así:
pages: (state, getters, rootState) => { console.log(rootState); }Sin embargo, ¿cómo puedo acceder a un getter desde otro módulo vuex en lugar del estado?
Tengo otro módulo vuex llamado filtros al que necesito acceder, he intentado esto:
rootState.filters.activeFilters Donde activeFilters es mi getter pero esto no funciona. usar rootState.filters.getters.activeFilters tampoco funciona.
Tuve que buscar en la documentación pero lo encontré:
https://vuex.vuejs.org/en/api.html
(Ctrl+F busca RootGetters en esa página)
Mi código se convierte en:
pages: (state, getters, rootState, rootGetters) => {}Tenga en cuenta que todos los rootGetters son globales y ya no los usa como rootState, donde antepondría el estado al nombre del módulo.
Simplemente llama a un getter desde otro módulo así:
rootGetters.activeFiltersCon suerte, esto ayudará a alguien en el futuro que también se encuentre con esto.
Si desea acceder al getter global/de espacio de nombres desde el módulo, así es como puede hacerlo,
getters: { // `getters` is localized to this module's getters // you can use rootGetters via 4th argument of getters someGetter (state, getters, rootState, rootGetters) { rootGetters.someOtherGetter //'someOtherGetter' global getter rootGetters['bar/someOtherGetter'] //'bar/someOtherGetter' namespaced getter }, ... }, Esta es la forma de acceder a las actions . También incluye el uso de action y mutations para la referencia.
actions: { // dispatch and commit are also localized for this module // they will accept `root` option for the root dispatch/commit someAction ({ dispatch, commit, getters, rootGetters }) { rootGetters.someGetter //'someGetter' global getter rootGetters['bar/someGetter'] //'bar/someGetter' namespaced getter dispatch('someOtherAction') //'someOtherAction' local action dispatch('someOtherAction', null, { root: true }) //'someOtherAction' namespaced action commit('someMutation') //'someMutation' local mutation commit('someMutation', null, { root: true }) //'someMutation' namespaced mutation }, ... } }