场景
在el-table中点击删除时使用el-popconfirm进行二次确认删除,第一页的时候,可以正常使用,当翻页到其他页面的时候,再次点击el-popconfirm组件时,popconfirm组件不显示,更无法点击‘确认’和‘取消’。
解决方法
网上搜索出来的答案都是在el-popconfirm组件中添加 :ref="popover-${scope.$index}
"。初步尝试以后发现此方案行不通。 (element版本:2.13.2)
根据以往的开发,以及对原理的初步了解,此场景有一定的可能是因为key的原因。后续尝试在table中的el-popconfirm添加对应的:key="scope.row.id",可以解决此问题。关键代码如下所示
<template slot-scope="scope">
<el-popconfirm title="确定取消该订单吗?" @onConfirm="cancel(scope.row)" :key="scope.row.id">
<span slot="reference" >
取消订单
</span>
</el-popconfirm>
</template>
提醒:
1.组件的使用,切不可照搬照抄。
2.此组件的方法调用,在不同的版本也会不同。例如:13.2版本对应的事件
在15.6版本时为:
3.开发以来,碰到的element其他坑的地方也不少,在此不在赘述!