Задать вопрос

Как сделать свойства объекта реактивными?

Здравствуйте. Мне приходит ответ с сервера вида
{
                id1: {
                    name: 'name',
                    value: 1245,
                },
                id2: {
                    name: 'name',
                    value: 1245,
                },
            };


Я распечатываю этот объект объектов через v-for в li, но при повторном запросе данных не происходит перерисовка. Из документации понял, что при инициализации на эти поля просто не добавляется реактивность, т.к. их еще нет. Как правильно добавить реактивность на эти поля? Использую Vue 3.
  • Вопрос задан
  • 208 просмотров
Подписаться 1 Простой 1 комментарий
Помогут разобраться в теме Все курсы
  • Skillbox
    Frontend-разработчик
    9 месяцев
    Далее
  • Loftschool
    Профессия Веб-разработчик
    7 месяцев
    Далее
  • Skillbox
    Веб-разработчик на PHP
    9 месяцев
    Далее
Решения вопроса 1
@Tim308 Автор вопроса
В общем вся суть была в том, что приходящий ответ с сервера был не новым объектом, а мутировал один и тот же объект в обход прокси vue, по этому и не было перерисовки. Варианты решения: сделать приходящие данные реактивными, или
this.data = undefined; 
this.data = receivedData;

или
this.data = {...receivedData};
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы