别人的代码
list.forEach(v => {//判断跨分页是否选中
//this.state.selectedMap是1个Map对象,它的has方法返回值为boolean
if(this.state.selectedMap.has(v.headPoolId)){
v._checked = true
}else{
v._checked = false
}
});
旁观者视角的代码
list.forEach( v=> v._checked = this.state.selectedMap.has(v.headPoolId) )
一段预留Bug代码
{
title: "XXXXX附件",
dataIndex: "file",
key: "file",
render: (text, record) => {
let result = record ? record.result : ''
return (
<span>
{result === 'T' && <a href="javascript:void(0);" onClick={handleCheck}>查看</a>}
</span>
)
}
},
以上帝的视角来审视这段代码
其实这段代码一开始就为Bug埋下了伏笔
这样代码的用意是,当result==="T"时,会在第一行的最后1个单元格里渲染一个名叫【查看】的超链接,反之则什么也不用渲染。
某日,后台依业务需要进行了变更,result已经不再等于T了,结果Bug如期而至
##修改过的代码
{
title: "XXXXX附件",
dataIndex: "file",
key: "file",
render: (text, record, index) => index === 0 && <a href="javascript:void(0);" onClick={handleCheck}>查看</a>
},