【发布时间】:2016-12-13 15:26:22
【问题描述】:
我得到了一个 printerList 计算属性,应该在 getPrinters() 解析后重新评估它,但看起来不是。
sources are online:optbox.component.vue,vuex,optboxes.service.js
组件
<template>
<div v-for="printer in printersList">
<printer :printer="printer" :optbox="optbox"></printer>
</div>
</template>
<script>
…
created() { this.getPrinters(this.optbox.id); },
computed: {
printersList() {
var index = optboxesService.getIndex(this.optboxesList, this.optbox.id);
return this.optboxesList[index].printers
}
},
vuex: {
actions: { getPrinters: actions.getPrinters,},
getters: { optboxesList: getters.retrieveOptboxes}
}
<script>
动作
getPrinters({dispatch}, optboxId) {
printers.get({optbox_id: optboxId}).then(response => {
dispatch('setPrinters', response.data.optbox, response.data.output.channels);
}).catch((err) => {
console.error(err);
logging.error(this.$t('printers.get.failed'))
});
},
突变
setPrinters(optboxes, optboxId, printers) {
var index = this.getIndex(optboxes, optboxId);
optboxes[index] = {...optboxes[index], printers: printers }
},
问题
为什么不重新评估 printerList 计算属性(即 v-for 为空)
【问题讨论】:
-
vuex调试器是否显示Printers的正确值?对我来说,它敲响了警钟,突变正在传递状态而不是自己处理它。 -
@HectorLorenzo 如果你的意思是 vue devtools 工具,是的,但它没有提交
标签: vue.js computed-properties vuex