使用VueJS2我有点困惑。我在数据容器中添加了一些变量,以便将其发送到我的API。这工作正常,但Vue给我一个警告/错误信息,我不知道如何解决:
避免将反应属性添加到Vue实例或其根$ data 在运行时 - 在数据选项中预先声明它。
var app = new Vue({
el: '#app',
data: {
incidentReference: '',
streetName: '',
latitude: '',
longitude: '',
featureTypeId: 1,
archived: 0
},
computed: {
href() {
return '#' + this.name.toLowerCase().replace(/ /g, '-');
}
},
mounted: function () {
this.getIncidents();
},
methods: {
onSubmit() {
axios.post('/api/v1/incidents', this.$data)
.then(response => alert('Success'))
.catch(error => {
console.log(error.response);
})
},
getIncidents: function() {
console.log('getIncidents');
var self = this;
axios.get('/api/v1/incidents').then(function(response) {
// set data on vm
console.log(response.data);
var incidentsReceived = response.data.data.map(function (incident) {
return incident;
});
Vue.set(self, 'incidents', incidentsReceived);
});
}
}
});
答案 0 :(得分:3)
您正在为API的响应创建新的反应属性
Vue.set(self, 'incidents', incidentsReceived);
不确定您是否拼错了属性的名称或忘记创建该属性。只需使用data
部分
Vue.set(self, 'incidentReference', incidentsReceived); //change property name
或
data: {
incidents: null, //or create this property
},
答案 1 :(得分:3)
在我的案例中,使用Jest进行单元测试时,我设置了selected
,但没有安装组件,因此出现了此错误。
wrapper.setData({
selected: recipients,
});
因此在组件上创建了属性,然后工作正常。