报错原因分析:赋值的类型错误
前端在遍历时通过判断条件为数据添加属性时报错,在重新查看代码时发现为遍历语句错误。
for (let item in list) {}
for (let item of list) {}
二者的不同之处在于,前者在遍历数组时若数组下存在属性,则会对属性也进行遍历操作,故报赋值的类型错误问题。
详细代码如下:
handelData(data) {
selectDeclarePlan(data.map(item => { return item.guid })).then(res => {
if (res.code === 1) {
this.loading = false;
let monthData = res.data;
for (let yearItem of data) {
// 是否存在申报计划
if (monthData.filter(item => item.planYearGuid === yearItem.guid).size != 0) {
yearItem.tip = '此年度计划已存在申报计划';
}
} else {
this.loading = false;
this.$message.error(res.message);
}
}).catch(error => {
this.loading = false;
this.$message.error(error);
})
},