Vue: Pu sh элемент в массив, который находится в объекте - PullRequest
1 голос
/ 23 января 2020

У меня есть следующая структура:

data: () => ({
  loadProgress: [{}]
})

пример структуры loadProgress

[{
  itemId: 1,
  details:[{}, {}, {}]
}, {
  itemId: 2,
  details: [{}, {}, {}, {}]
}]

как я могу сделать this.loadProgress[index].details.push(...) для достижения реактивности?

Я отрисовываю это с v-for, где :key равно item.itemId

1 Ответ

1 голос
/ 23 января 2020

Вы можете использовать vue $ set method. По умолчанию vue не вносит изменений в глубоко вложенный объект, поэтому вы должны использовать это так:

this.loadProgress[index].details.$set(index, val);
or
this.$set(this.loadProgress[index].details, index, val);
...