Хотя это сделано в vuejs, я твердо верю, что это связано с простым javascript, у меня есть этот массив doc_types, когда я пытаюсь присвоить какое-то значение его индексу, он не работает, но когда я пытаюсь нажать, он работает нормально ..
data: function () {
return {
doc_types: [],
}
},
methods: {
populateDocType() {
this.doc_types.push(response.data); //this works
this.doc_types[0] = response.data //this doesn't...no errors though..just the array is unmodified..
}
}
первая инструкция добавляет к массиву новое значение, а вторая присваивает результат первому значению массива. что оставляет массив без изменений, так как его размер не изменился, но изменилось значение первого элемента. this.doc_types = response.data присвоит массиву значение (возможно, массив).



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Я предполагаю, что когда вы говорите, что это не срабатывает, вызывая тех слушателей, которые должны, а не то, что сама структура данных не изменяется.
Это известная оговорка при обнаружении изменений во Vue.
Решение - использовать обходной путь Vue
Vue.set(array, indexOfItem, newValue)
Или в вашем случае
Vue.set(this.doc_types, 0, response.data)
Более подробно это объясняется здесь: https://vuejs.org/v2/guide/list.html#Caveats
Можете ли вы зарегистрировать
this.doc_types[0]до и после попытки присвоения данных?