web-dev-qa-db-fra.com

Comment accéder au getter depuis un autre module vuex?

Dans un getter vuex, je sais qu'il est possible d'accéder à l'état depuis un autre module vuex comme ceci:

pages: (state, getters, rootState) => {
    console.log(rootState);
}

Comment puis-je accéder à un getter depuis un autre module vuex au lieu de l'état?

J'ai un autre module vuex appelé filtres auquel j'ai besoin d'accéder, j'ai essayé ceci:

rootState.filters.activeFilters

activeFilters est mon getter mais cela ne fonctionne pas. en utilisant rootState.filters.getters.activeFilters aussi ne fonctionne pas.

37
Stephan-v

J'ai dû fouiller dans la documentation mais je l'ai trouvée:

https://vuex.vuejs.org/en/api.html

(Ctrl + F recherche RootGetters sur cette page)

Mon code devient:

pages: (state, getters, rootState, rootGetters) => {}

Attention, tous les rootGetters sont globaux et vous ne les utilisez plus comme rootState où vous préfixeriez l'état par le nom du module.

Vous appelez simplement un getter depuis un autre module comme ceci:

rootGetters.activeFilters

J'espère que cela aidera quelqu'un dans le futur à le rencontrer également.

75
Stephan-v