Vuejs не обновляет мой интерфейс, кто-нибудь знает почему? - PullRequest
2 голосов
/ 22 апреля 2020

У меня есть приложение с vuejs. У меня есть объект, который обновляется из API каждые 10 секунд, он также должен изменить Html (интерфейс) при обновлении.

У меня возникают некоторые трудности при обновлении интерфейса, хотя я вижу, как объект меняется в консоли, поэтому я знаю, что он меняется.

Вот фрагмент моего кода:

watch: {
  myObj() {
    for (let [key, tuner] of Object.entries(myObj)) {
    ---- some code ----
     }
  }
 },
},
created() {
 setInterval(this.callMyApi(), 10000);
},

Я вызываю свой API каждые 10 секунд, а затем использую свойство WATCH, чтобы проверить, когда изменяется myObj, и делать некоторые логи c с этим. Кто-нибудь может мне помочь?

1 Ответ

1 голос
/ 22 апреля 2020

Существует 2 компонента, которые чрезвычайно важны для обеспечения правильной работы объекта (особенно с вложенными свойствами).

Во-первых, вы должны либо A) создать экземпляр свойства как объекта, объявляя myObj: {} или B) используйте Vue.set(this, 'myObj', yourCustomObject) для обеспечения его реактивности.

Во-вторых, вы должны использовать deep: true, если ваш объект содержит вложенные объекты / массивы.

watch: {
  myObj: {
    deep: true, // this is the important part

    handler() {
      // your code
    }

  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...