在vuex getter中我知道可以从另一个vuex模块访问状态,如下所示:
pages: (state, getters, rootState) => {
console.log(rootState);
}
Run Code Online (Sandbox Code Playgroud)
如何从另一个vuex模块而不是状态访问getter?
我有另一个名为过滤器的 vuex模块,我需要访问,我试过这个:
rootState.filters.activeFilters
Run Code Online (Sandbox Code Playgroud)
activeFilters我的吸气剂在哪里,但这不起作用.使用rootState.filters.getters.activeFilters也行不通.
这是一个带有参数化 getter的 Vuex Store 示例,我需要将其映射到 Vue 实例以在模板中使用。
const store = new Vuex.Store({
state: {
lower: 5,
higher: 10,
unrelated: 3
},
getters: {
inRange: state => value => {
console.log('inRange run')
return (state.lower <= value) && (state.higher >= value)
}
},
mutations: {
reduceLower: state => state.lower--,
incrementUnrelated: state => state.unrelated++
}
})
new Vue({
el: '#app',
template: "<div>{{ inRange(4) }}, {{ unrelated }}</div>",
store,
computed: Object.assign(
Vuex.mapGetters(['inRange']),
Vuex.mapState(['unrelated'])
),
})
setTimeout(function() {
console.log('reduceLower')
store.commit('reduceLower')
setTimeout(function() {
console.log('incrementUnrelated') …Run Code Online (Sandbox Code Playgroud)