Не обновляет с pull refre sh, а скорее повторяет старые данные - PullRequest
0 голосов
/ 06 февраля 2020

Я пытаюсь реализовать pull-refre sh в среде квазара с данными, поступающими из firebase firestore.

вот мой метод, который пытается получить и обновить sh данные

retrieveAnnouncements() {
  firebase
    .firestore()
    .collection("announcement")
    .get()
    .then(snapShot => {
      snapShot.forEach(element => {
        const { TITLE, CONTENT, AUTHOR } = element.data();
        //add retrieved data in announcement
        this.announcements.push({
          key: element.id,
          TITLE,
          CONTENT,
          AUTHOR
        });
      });
    })
    .catch(err => {
      alert("Failed to retrieve announcements");
      console.log(err);
    });
},
refresh(done) {
  setTimeout(() => {
    this.retrieveAnnouncements();
    done();
  }, 1000);
}

и здесь я попытался использовать q-pull-refre sh из квазара

<q-pull-to-refresh @refresh="refresh">
  <q-card
    class="q-ma-md"
    bordered
    v-for="announcement in announcements"
    :key="announcement.key"
  >
    <q-card-section>
      <div class="text-h6">{{announcement.TITLE}}</div>
      <div class="text-subtitle2">{{announcement.CONTENT}}</div>
    </q-card-section>
    <q-card-actions>
      <q-space />
      <q-btn color="green" @click="editAnnouncement(announcement.key)">Edit</q-btn>
      <q-btn color="red" @click="deleteAnnouncement(announcement.key)">Delete</q-btn>
    </q-card-actions>
  </q-card>
</q-pull-to-refresh>

, но я только повторил данные и не получил последние данные.

Вот видео https://drive.google.com/file/d/1HOMURe23L_EvAVwTyBBOsnKbh94ZNwMh/view

1 Ответ

0 голосов
/ 02 мая 2020

Вам необходимо очистить массив перед отправкой данных в него

Добавить:

this.announcements = []; // clear the array

перед строкой:

this.announcements.push({
...