遇到一个问题,其中处理多个值的数组已相应更新,但未显示<table>
结果。
包含下拉选项的组件是Filters.vue
(为演示目的简化了一点):
<multiselect v-model="selectedStatus" :options="statuses" :multiple="true" label="text" track-by="text">
data() {
return {
selectedStatus: [],statuses: [
{value: null,text: 'Select a Status'},{value: 'Approved',text: 'Approved'},{value: 'Completed',text: 'Completed'},{value: 'Cancelled',text: 'Cancelled'}
watch: {
selectedStatus: function(){
this.$emit('updateStatus',this.selectedStatus)
}
上述组件用于以下组件Tracker.vue
:
<filters :status="selectedStatus" @updateStatus="updateStatus('extra',...arguments)"></filters>
data() {
return {
selectedStatus: [],},watch: {
selectedStatus: function(){
this.applyFilters();
},methods: {
updateStatus: function(extra,a,b,c) {
this.selectedStatus.push([extra,c]);
},applyFilters: function() {
// store details based on filters selected
this.filteredDetails = []
for (var i in this.details){
if (this.selectedStatus && !this.selectedStatus.includes(this.details[i].status)){
continue;
}
else {
this.filteredDetails.push(this.details[i]);
}
}
}
控制台。记录选择多个下拉列表时的数组长度。本帖子简化了applyFilters
方法,因为UI上总共有5个单独的下拉菜单。当Status
是单选下拉列表时,此方法工作正常。 applyFilters
方法是一种差劲的方法还是最好的方法?
引用了此JSFiddle,因为它在Github VueJS repo:https://jsfiddle.net/50wL7mdz/30115/
上得到了高度评价任何人和所有人都对如何解决此问题表示赞赏。