在el-table中使用el-popconfirm时,el-popconfirm 不弹出

4,824 阅读1分钟

场景

在el-table中点击删除时使用el-popconfirm进行二次确认删除,第一页的时候,可以正常使用,当翻页到其他页面的时候,再次点击el-popconfirm组件时,popconfirm组件不显示,更无法点击‘确认’和‘取消’。

image.png

解决方法

网上搜索出来的答案都是在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版本对应的事件

image.png 在15.6版本时为:

image.png
3.开发以来,碰到的element其他坑的地方也不少,在此不在赘述!