收藏
回答

多次打开同一页面,wx.showModal会重复出现多次?

安卓手机,扫小程序码进入页面A,页面会调wx.showModal出现弹窗;退出小程序,再次扫小程序码进入页面A,这时会出现2个弹窗;以此类推,扫多少次码,就出现多少次弹窗。如何在页面初始化时关闭原本展示的模式弹窗,保证页面只展示一个弹窗?

最后一次编辑于  2023-11-30
回答关注问题邀请回答
收藏

2 个回答

  • 社区技术运营专员-Jahozheng
    社区技术运营专员-Jahozheng
    2023-11-30

    请具体描述问题出现的流程,并提供能复现问题的简单代码片段(https://developers.weixin.qq.com/miniprogram/dev/devtools/minicode.html)。

    2023-11-30
    有用
    回复 7
    查看更多(2)
  • 微盟
    微盟
    2023-11-30

    是的,如果多次打开同一页面并且在每次打开页面时都调用了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('用户点击取消');

            }

          }

        });

      }

    });

    2023-11-30
    有用
    回复 4
登录 后发表内容