onClick中的函数自动被调用问题

来看如下两种html片段

 // 每次加载都会执行一次
 <a href='javascript:void(0)' onclick={this.clickCon(row.contractID)}>合同</a>
 // 正常执行
 <a href='javascript:void(0)' onclick={()=>this.clickCon}>合同</a>

原因

第一种写法是每次加载时,先调用clickCon方法,然后将执行结果赋给onclick,每次都会执行

后面一种是将clickCon方法传递给onclick,所以只有触发click才会执行

解决方法

使用匿名函数

// 正常执行
 <a href='javascript:void(0)' onclick={()=>this.clickCon(row.contractID)}>合同</a>