this.$refs.MyProperty.refresh не является функцией

#javascript #vue.js #vuetify.js

#javascript #vue.js #vuetify.js

Вопрос:

Я прикрепил ссылочное значение ‘callingTable’ к таблице данных vue (из vuetify), как показано ниже:

 <v-data-table
 :headers="callingTableHeaders"
 :items="getCallingDetails"
 class="elevation-1"
 ref="callingTable"
>
 

после выполнения некоторой фоновой работы я пытаюсь обновить таблицу, используя ссылку, но получаю сообщение об ошибке

this.$refs.callingTable.refresh не является функцией «

 <script>
  refreshTable(){
   ...
   this.$refs.callingTable.refresh();
  }
 

Что я могу делать не так?

Комментарии:

1. Где это refresh определено?

2. Я думаю, вы ищете .$forceUpdate() , а не refresh() ?

3. Я не уверен, есть ли в v-data-table функция обновления, доступ к которой можно получить из ref, отложив это в сторону, вызываете ли вы refresh для обновления данных, отображаемых в таблице? Если это так, обновление массива «getCallingDetails» должно работать нормально. Кстати, вы можете увидеть callingTable ref либо с помощью консоли, регистрирующей его, либо из инструмента разработки vue, чтобы узнать, есть ли в нем какое-либо обновление или нет

Ответ №1:

Принудительное обновление — не самый лучший способ обновить ваш макет. Просто обновите свои данные, и тогда макет будет реагировать. Если это не так, вы можете использовать цепочку ключей для решения вашей проблемы.

Цепочка ключей для принудительного обновления