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

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


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

или
this.data = {...receivedData};
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
Nolis
@Nolis
it-гопник
Записываешь в хранилище (vuex) и меняешь их в state, потом сможешь отправить видоизмененные данные, если потребуется
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы