项目场景:
项目中遇到一个奇怪的问题,我使用了el-popconfirm组件,项目基于VUE脚手架,当页面设置了缓存之后,跳转到当前界面,el-popconfirm包裹住的按钮点击没有任何的反应,刷新浏览器之后才能点击触发相应的事件。
原因分析:
因为我在按钮中使用了v-if来进行显示控制,当我直接使用v-if=“”的时候,出现这个问题,但是当在el-popover 或者 el-popconfirm 里面同样也加上 v-if 的判断的时候,问题解决。
解决方案:
在el-popover里面加上v-if判断,el-popconfirm同理
变化前
<el-popover placement="top" width="160" v-model="visible">
<p>这是一段内容这是一段内容确定删除吗?</p>
<div style="text-align: right; margin: 0">
<el-button size="mini" type="text" @click="visible = false">取消</el-button>
<el-button type="primary" size="mini" @click="visible = false">确定</el-button>
</div>
<el-button slot="reference" v-if="isDelete">删除</el-button>
</el-popover>
变化后
<el-popover placement="top" width="160" v-model="visible" v-if="isDelete">
<p>这是一段内容这是一段内容确定删除吗?</p>
<div style="text-align: right; margin: 0">
<el-button size="mini" type="text" @click="visible = false">取消</el-button>
<el-button type="primary" size="mini" @click="visible = false">确定</el-button>
</div>
<el-button slot="reference" v-if="isDelete">删除</el-button>
</el-popover>