小程序
小游戏
企业微信
微信支付
扫描小程序码分享
安卓手机,扫小程序码进入页面A,页面会调wx.showModal出现弹窗;退出小程序,再次扫小程序码进入页面A,这时会出现2个弹窗;以此类推,扫多少次码,就出现多少次弹窗。如何在页面初始化时关闭原本展示的模式弹窗,保证页面只展示一个弹窗?
2 个回答
加粗
标红
插入代码
插入链接
插入图片
上传视频
请具体描述问题出现的流程,并提供能复现问题的简单代码片段(https://developers.weixin.qq.com/miniprogram/dev/devtools/minicode.html)。
你好,麻烦通过点击下方“反馈信息”按钮,提供出现问题的。
是的,如果多次打开同一页面并且在每次打开页面时都调用了wx.showModal方法,那么wx.showModal会重复出现多次。这是因为wx.showModal是一个异步方法,每次调用都会创建一个新的模态框实例。
为了避免重复出现多个模态框,你可以在每次打开页面时先关闭之前的模态框。可以通过以下步骤来实现:
在页面的onUnload生命周期函数中调用wx.hideModal方法,关闭之前打开的模态框。这样在每次离开页面时,都会关闭之前的模态框。
在每次打开页面时,再调用wx.showModal方法显示新的模态框。
下面是一个示例代码:
javascript
复制代码
Page({
onUnload: function() {
wx.hideModal(); // 关闭之前的模态框
},
openModal: function() {
wx.showModal({
title: '提示',
content: '这是一个模态框',
success: function(res) {
if (res.confirm) {
console.log('用户点击确定');
} else if (res.cancel) {
console.log('用户点击取消');
}
});
关注后,可在微信内接收相应的重要提醒。
请使用微信扫描二维码关注 “微信开放社区” 公众号
请具体描述问题出现的流程,并提供能复现问题的简单代码片段(https://developers.weixin.qq.com/miniprogram/dev/devtools/minicode.html)。
是的,如果多次打开同一页面并且在每次打开页面时都调用了wx.showModal方法,那么wx.showModal会重复出现多次。这是因为wx.showModal是一个异步方法,每次调用都会创建一个新的模态框实例。
为了避免重复出现多个模态框,你可以在每次打开页面时先关闭之前的模态框。可以通过以下步骤来实现:
在页面的onUnload生命周期函数中调用wx.hideModal方法,关闭之前打开的模态框。这样在每次离开页面时,都会关闭之前的模态框。
在每次打开页面时,再调用wx.showModal方法显示新的模态框。
下面是一个示例代码:
javascript
插入代码
复制代码
Page({
onUnload: function() {
wx.hideModal(); // 关闭之前的模态框
},
openModal: function() {
wx.showModal({
title: '提示',
content: '这是一个模态框',
success: function(res) {
if (res.confirm) {
console.log('用户点击确定');
} else if (res.cancel) {
console.log('用户点击取消');
}
}
});
}
});