В моем Vuejs компоненте у меня есть этот троичный оператор в разделе HTML ...
col.column_name == lastUpdatedFilter
? secondaryFacetsData[col.column_name]
: primaryFacetsData[col.column_name]
Это вызывает неопределенную ошибку.
не может прочитать свойство 'firstname' с нулевым значением
firstname
- это одно из имен столбцов, поэтому я вполне уверен, что это означает primaryFacetsData
и / или secondaryFacetsData
не определены.
Однако, если я заменю этот троичный оператор просто
primaryFacetsData[col.column_name]
или
secondaryFacetsData[col.column_name]
, то ошибки не будет. Почему это может быть?
Вот весь соответствующий раздел HTML моего компонента Vuejs.
<div v-for="col in filterCols">
<div :key="col.label">
<b-row class="mb-2">
<button
class="accordion"
:class="showFacet[col.column_name] ? 'active' : ''"
@click.prevent="clickedAccordionButton(col.column_name)"
>
{{ col.label }}
</button>
<div class="panel" v-show="showFacet[col.column_name]">
<Facet
:isFetching="isSearching"
:columnDef="col"
:list="list"
:q="q"
:f="f"
ref="Facet"
@filters-changed="onFiltersChanged"
:buckets="
col.column_name == lastUpdatedFilter
? secondaryFacetsData[col.column_name]
: primaryFacetsData[col.column_name]
"
></Facet>
</div>
</b-row>
</div>
</div>
<script>
...
this.$axios
.get("/elasticsearch/" + this.list_id, {
params: params
})
.then(
response => {
this.isSearching = false;
this.setSearchResults(response.data.searchResults, timesent);
this.primaryFacetsData = response.data.primaryFacetsData;
this.secondaryFacetsData = response.data.secondaryFacetsData;
},
error => {
this.isSearching = false;
this.searchErrorMessage = error;
}
);
</script>
Также было бы полезно отметить, что primaryFacetsData
и secondaryFacetsData
содержат много данных.