【发布时间】:2020-03-06 14:41:49
【问题描述】:
我创建了这个简单的卡片组件:
Card.vue
<template>
<v-card :loading="loading">
<v-card-text v-if="!loading">
<div class="text-center font-weight-black title text--primary">
{{data}} {{unit}}
</div>
<div class="text-center">
{{title}}
</div>
</v-card-text>
</v-card>
</template>
我向这个组件传递了以下道具:
props: ['title', "data", "unit", "loading"]
现在在父组件中,我使用 v-for 创建上述组件的列表:
<Card
v-for="d in basic_fc"
v-bind:key="d.id"
v-bind:title="d.title"
v-bind:data="d.data"
v-bind:unit="d.unit"
v-bind:loading="loading"
:class="'home__simple-finance--'+d.id"
></Card>
和计算属性:
computed: {
...mapGetters(["basic_fc"]),
loading () {
if (this.basic_fc.length==0) {
return true
}
else {
return false
}
}
}
现在basic_fc 是一个返回值数组的 vuex getter。问题是这个数组可以为空,所以当它为空时,loading 变量为true,反之亦然。
因此,预期的行为是 Card.vue 组件显示为空卡片。将loading 值传递给v-card 和v-card-text 如果它的单个组件有效,但不知何故它不适用于列表。
那么我怎样才能让它呈现卡片列表呢?
【问题讨论】:
-
您可以将
loading属性简化为return this.basic_fc.length === 0:)
标签: vue.js vuejs2 vuex vuetify.js