我在 vuex 中创建了模块,但是如何访问计算中的 getter 呢? 这是产品模板
<template>
<ul>
<li v-for="item in productAll" :key="item._id">
<p>hello word</p>
</li>
</ul>
</template>
<script>
export default {
computed:{
productAll(){
return this.$store.getters.productAll
}
},
}
</script>
这是我的商店
const productModule = {
state: () => ({
product: [
]
}),
getters:{
productAll(context){
return [
"123","456"
]
// return state.product.data
}
},
}
export const store = new Vuex.Store({
modules: {
productModule
},
}
我只在“store.getters.productAll”中返回数组 123 345,如果我将数组 123 345 放入计算它正在工作,将显示 hello word 2 次,但是为什么当我放入 store 模块时它不起作用?
答案 0 :(得分:1)
与操作不同,getter 不接收 context
对象。他们收到 4 个参数:
(state, getters, rootState, rootGetters)
state
:当前模块状态getters
:当前模块 getterrootState
:根模块状态(以及模块到模块的访问)rootGetters
:根模块 getter(以及模块到模块的访问)因此以这种方式创建您的 getter:
getters: {
productAll(state) {
return state.product.data
}
}