Я создал этот простой компонент карты:
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 который возвращает массив значений. Дело в том, что этот массив может быть пустым, поэтому, когда он пуст, переменная loading
равна true
и наоборот.
Таким образом, ожидаемое поведение таково, что компонент Card.vue
показан, но как пустая карточка. Передача значения loading
в v-card
и v-card-text
работает, если его отдельный компонент, но почему-то не для списка. Так как я могу сделать так, чтобы список карт все равно отображался?