微信小程序返回上一页携带参数

今日碰到一个需求,在奖品详情页跳转页面领奖后,返回到详情页需要把去领奖到按钮改为已领奖。

正常跳转页面时通过navigate或redirect时候的url来携带参数,然后在目标页面的onLoad函数参数中获取这些url参数。但是,这种方式只有在目标页面还没有创建的时候,才有效。因为一个页面的onLoad方法在页面的生命周期中,只执行一次。
  • 在网上查到的方法如下:
  onShow: function () {
    var that = this;
    var pages = getCurrentPages(); 
    var prevPage = pages[pages.length - 2];   //上一页
    prevPage.setData({
      prize_id: that.data.id
    })
  }
在当前页面的onShow方法中,把从上一页传递过来的参数通过上面方法赋值。这种方式,是通过调用小程序的API: getCurrentPages(),来获取当前页面路由栈的信息,这个路由栈中按照页面的路由顺序存放着相应的Page对象,我们可以很容易的获取到上一级页面的完整Page对象,从而使直接调用Page对象的属性和方法成为可能。
  • 然后在返回的页面通过onShow接收并判断参数,存在的话调取接口并进行渲染
 onShow: function () {
    var that = this;
    let pages = getCurrentPages();
    let currPage = pages[pages.length - 1]; //当前页
    if (currPage.data.prize_id) {
        //调取接口操作
    }
  }
通过上面的方法就可以实现带参数返回
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1.小程序起步 (1)点击https://mp.weixin.qq.com/wxopen/waregister?a...
    GXW_Lyon阅读 8,767评论 0 0
  • 前言: 上一篇文章我们介绍了.wxml和.wxss文件,这篇文章对js文件进行详细的讲解,首先贴上一个简单的js文...
    Smile__EveryDay阅读 20,379评论 0 7
  • 因新工作主要负责微信小程序这一块,最近的重心就移到这一块,该博客是对微信小程序整体的整理归纳以及标明一些细节点,初...
    majun00阅读 12,162评论 0 9
  • 深圳的冬天,是未来的春天与已过的秋那恰到好处的融合。芬香的花儿昨日还立在枝头,摇曳冬风,今日却已被无情吹落,散落街...
    地心的少年猫阅读 1,805评论 0 0
  • 他的目光柔和、坚毅、清澈,嘴角微微一扬便能让整个世界一片明亮、春暖花开。他便是记忆里的那个温存的谦谦少年——夏目贵...
    白格子阅读 3,567评论 0 0

友情链接更多精彩内容