记录:wx.navigateTo的events与wx.redirectTo

今天在开发小程序时遇到一个问题,关于wx.navigateTo的events与wx.redirectTo;暂时还没想到原因,猜测是异步执行的问题;

需求描述:在页面1有一个弹窗,点击弹窗里的按钮跳转到页面2,在页面2点击一个按钮到页面3,需要实现,当点击页面2的按钮去到页面3时,从页面3直接返回回到页面1,并且将页面1的弹窗关闭;

步骤1:涉及到返回跨页面,所以页面2到页面3,用wx.redirectTo(关闭当前页面,跳转到应用内的某个页面);页面2被移出栈,所以从页面3返回就能直接返回到页面1了;

步骤2:再来实现关闭页面1的弹窗:当页面2发生了跳转页面3时,要通知页面1去关闭弹窗,这时页面1跳转页面2就可以使用wx.navigateTo(保留当前页面,跳转到应用内的某个页面)的events来实现;wx.navigateTo的events可以和被打开页面进行通信;

	// 页面1
      wx.navigateTo({
            url: `/retail/pages/my/clock/shopclock/index`,
            events: {
                refresh: function (data) {
                  console.log('在这里执行关闭弹窗')
                }
            },
        })
	// 页面2
	 let eventChannel = this.getOpenerEventChannel()
     if(eventChannel && eventChannel.emit){
         eventChannel.emit('refresh',{});
      }
      
	  wx.redirectTo({
          url: `页面3`,
      })

好的,打工告成;
你是不是以为这样就结束了;

并没有,这时候发现页面1到页面2,页面3到页面3,页面3返回,是回到页面1了,但是弹窗并没有关闭;

算了,今天就到这吧,没找到原因;

换了另一个方式来实现这个功能;
在小程序里定一个全局的字段,点击页面2到页面3的按钮之后给这个字段赋值;返回到页面1时判断一下这个字段是否有值;就好了;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值