先看官方文档描述:切换标签之前的钩子,若返回 false 或者返回 Promise 且被 reject,则阻止切换。
贴一段我的代码
结构:
<el-tabs v-model="multyForm.activeType" style="width: 100%;" :before-leave="tabLeave">
方法:
async tabLeave(){
await this.$confirm('切换tab将不会保存当前修改内容, 是否继续?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
return true
}).catch(() => {
return reject()
});
},
需要注意的点:
1、必须使用async await不然不会生效
2、官方文档说return false 或者 reject()都会阻止切换,但是实际return false没有阻止切换