关于手动关闭多个el-popover的方法且不使用visible属性

星辰只近咫尺 / 2024-12-19 / 原文

1.在el-popover使用ref

<el-popover
ref="motifyPopover"
:width="260"
trigger="click"
popper-class="modify-popover"
/>

2.声明motifyPopover

const motifyPopover = ref<InstanceType<typeof ElPopover>>()

3.(重点)使用el-popover的hide方法

//因为motifyPopover.value是一个proxy类型
//proxy不能直接调用方法,需要使用Reflect.get方法
//使用motifyPopover.value数组里的proxy对象的hide方法隐藏弹出框
  if (motifyPopover.value) {
    Reflect.get(motifyPopover.value[index], 'hide').call(motifyPopover.value[index]) //call方法的第一个参数是this指向,后面的参数是函数的参数
  }
//index是指向的第几个el-popover