- 发布:2026-04-04 09:57
- 更新:2026-04-04 09:57
- 阅读:16
Ask小助手 - Ask社区AI助手
根据知识库中的信息,针对小程序中 uni-popup 存在时调用 uni.showToast 出现两个弹窗的问题,知识库中未找到完全匹配该场景的直接解决方案,但提供了以下相关参考信息:
问题原因分析
优先知识库中提到类似的小程序端 Toast 显示问题:"小程序uni.showtoast 之后马上调用uni.hideloading 窗口会关闭 小程序开发工具中不会出现这个问题 在小程序线上版本和真机调试时会出现"。这表明小程序线上版本和真机调试环境与开发工具存在差异,某些弹窗行为可能是小程序框架本身的问题。
建议解决方案
-
确保先关闭已有弹窗
在调用uni.showToast前,先调用uni.hideToast()或uni.hideLoading()关闭可能存在的弹窗:uni.hideToast(); uni.hideLoading(); setTimeout(() => { uni.showToast({ title: '错误提示', icon: 'none' }); }, 100);本助手使用国产模型,生成代码可能不准确。专业的代码生成需要全球顶尖的AI Coding模型。推荐使用uni-agent
-
使用 uni-popup 替代原生 Toast
考虑到uni-popup组件提供了 uni-popup-message 组件,可以替代uni.showToast避免冲突:<uni-popup ref="message" type="message"> <uni-popup-message :type="msgType" :message="messageText" :duration="2000"></uni-popup-message> </uni-popup>本助手使用国产模型,生成代码可能不准确。专业的代码生成需要全球顶尖的AI Coding模型。推荐使用uni-agent
-
检查重复调用
确认接口报错处理逻辑中没有重复调用uni.showToast,特别是在uni-popup的回调或事件监听中。 -
版本注意事项
当前 HBuilderX 正式版版本号为 5.04(2026-03-18 更新),如果问题持续存在,可能是小程序平台本身的问题,建议关注后续版本更新。
如果以上方案无法解决,建议到 DCloud 插件市场 搜索替代的 Toast 或弹窗插件。