Задаю в корневой экземпляр Vue начальное состояние данных
data:function(){ return {
Config: {},
list: [],
activeService: ''
}},
По хуку created я запрашиваю с сервера json - в нём объект. В Конфиге csrf, в list массив объектов, json соответствует начальным состояниям в колбэке data.
created: function(){
axios.get("/jsondata/stepdata/step-1.json")
.then(function(response){
rootVueSteplist.$data = response.data;
})
}
Ловлю ошибку: Avoid replacing instance root $data. Use nested data properties instead.
Окей, действительно - я же просто вытаюсь создать ссылку на объект... Поступаю по другому.
created: function(){
axios.get("/jsondata/stepdata/step-1.json")
.then(function(response){
rootVueSteplist.$data = Object.assign(rootVueSteplist.$data, response.data)
})
}
И снова ловлю ошибку. Ту же самую. Стало интереснее - поэкспериментировал дальше.
Такое работает:
created: function(){
axios.get("/jsondata/stepdata/step-1.json")
.then(function(response){
rootVueSteplist.$data.Config = response.data.Config;
rootVueSteplist.$data.list = response.data.list;
})
}
Но это говнокод. Мб кто-то знает в чём проблема? Гуглить ошибки vuejs просто вынос мозга
UPD: попробовал применить метод set экземпляра vue и был послан ошибкой подлинее:
created: function(){
axios.get("/jsondata/stepdata/step-1.json")
.then(function(response){
rootVueSteplist.$set(rootVueSteplist.$data, response.data)
// rootVueSteplist.$data = Object.assign(rootVueSteplist.$data, response.data)
})
Либо я тупой, либо лыжи г**но....
Avoid adding reactive properties to a Vue instance or its root $data at runtime - declare it upfront in the data option