uni.showmodal弹出了很多层
时间: 2025-02-19 18:54:30 浏览: 18
防止 uni.showModal
多次弹出的方法
为了防止 uni.showModal
在 UniApp 中重复弹出多层对话框,可以通过设置标志位来控制对话框的状态。具体做法是在调用 uni.showModal
前检查当前是否有未关闭的对话框实例存在。
使用标志位管理对话框状态
通过引入一个布尔类型的变量作为标志位,在每次打开新对话框前先判断该变量:
let isShowing = false;
function showModalWithPrevention(title, content) {
if (!isShowing) {
isShowing = true;
uni.showModal({
title,
content,
success(res) {
if (res.confirm) {
console.log('用户点击确定');
} else if (res.cancel) {
console.log('用户点击取消');
}
// 关闭后重置标志位
isShowing = false;
},
fail(err) {
console.error('modal show failed:', err);
isShowing = false; // 出错也需重置标志位
}
});
}
}
此方法能够有效阻止同一时间多个相同功能的模态窗口被触发显示[^1]。
另外一种方式则是利用页面生命周期函数配合 Vuex 或者本地存储机制保存并同步不同页面间的共享数据,从而达到跨组件间协调的目的。不过对于简单的场景而言,上述基于局部变量的方式已经足够满足需求。
阅读全文
相关推荐


















