我在我的商店中创建了一些getter并使用mapGetters
映射它们,如下所示,其中的数据是正确的,如Vue调试工具中所示。
现在,我正在使用此数据为分页创建一些计算属性,如下所示。但我不确定为什么错误表明getter返回未定义。
export default {
data() {
return {
pageNumber: 1
}
},
props: {
size: {
type: Number,
required: false,
default: 5
}
},
methods: {
nextPage() {
this.pageNumber++
},
prevPage() {
this.pageNumber--
}
},
computed: {
...mapGetters([
'getCurrentClientConfig',
'getFullVendorList'
]),
totalVendors() {
return getFullVendorList.vendors.length;
},
pageCount() {
let l = getFullVendorList.vendors.length;
let s = this.size;
return Math.floor(l / s);
},
paginatedData() {
let start = (this.pageNumber - 1) * this.size;
let end = start + this.size;
return getFullVendorList.vendors.slice(start, end);
}
}
}
出于某种原因,我在控制台中收到undefined
错误,如下所示:
vue.runtime.esm.js:588 [Vue warn]: Error in render: "ReferenceError: getFullVendorList is not defined"
found in
---> <Vendors> at client/ui/components/Vendors.vue
<VkModal>
<Root>
vue.runtime.esm.js:1736 ReferenceError: getFullVendorList is not defined
at VueComponent.paginatedData (Vendors.vue?./node_modules/babel-loader/lib!./node_modules/vue-loader/lib??vue-loader-options:71)
at Watcher.get (vue.runtime.esm.js:3137)
at Watcher.evaluate (vue.runtime.esm.js:3244)
at VueComponent.computedGetter [as paginatedData] (vue.runtime.esm.js:3500)
at Object.get (vue.runtime.esm.js:1915)
at Proxy.render (Vendors.vue?./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options:21)
at VueComponent.Vue._render (vue.runtime.esm.js:4532)
at VueComponent.updateComponent (vue.runtime.esm.js:2783)
at Watcher.get (vue.runtime.esm.js:3137)
at new Watcher (vue.runtime.esm.js:3126)
提前致谢!
答案 0 :(得分:1)
您需要从实例参考
获取它应该是这样的:
totalVendors() {
return this.getFullVendorList.vendors.length;
},