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

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

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


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

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

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

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