为什么在前端页面显示时,render函数中onchange总是显示出最后一个name变量的值
有人知道吗
var linenamelist=response.data.linenamelist;
for(var i=0;iname=linenamelist[i];
console.log(name)
var obj={
title: name,
key:name,
//width:'80',
align:'left',
render: (h, params) => {
return h('checkbox', {
style: {
},
on: {
'on-change': () => {
console.log(name+","+that.listdata[params.index][name])
if(params.row[name]=="1"){
that.listdata[params.index][name]="0";
}else{
that.listdata[params.index][name]="1";
}
}
}
}, '');
}
}
console.log(obj)
that.listcolumns.push(obj);
}
将var替换为let就可以了,大概明白了
代码里面大概就是说他先不走那个方法,把方法放着,然后等循环完了才把变量放进去,因为var的那个是全局变量
就是基本的闭包啊