неопределенная ошибка с троичным оператором в приложении vuejs - PullRequest
0 голосов
/ 29 марта 2020

В моем 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 содержат много данных.

...