微信小程序返回上一级页面并传值刷新

1 说明

在很多业务场景之下,需要返回上一级页面,并进行刷新,在微信小程序中的wx.navigateBack 方法中,返回上一页是不会刷 新的。如果上一页的页面加载是在onLoad方法中触发的话,那么可以修改为在onShow方法中触发。

(1)onLoad(Object query):页面加载时触发。一个页面只会调用一次,可以在 onLoad 的参数中获取打开当前页面路径中的参数。
(2)onShow:页面显示/切入前台时触发。
值得注意的是:如果上一级的页面是从上上级页面跳过来的话,之前在onLoad方法中,使用的options获取的参数方法,那么
当修改为onShow加载的时候就需要,将这个方法稍微修改一下,可以选择使用页面栈的方式,获取上上级页面传来的参数:

2 示例

2.1 发送

/**
   * 点击发送
   */
  clickSearch: function (e) {
    console.log("efwfhbw==", e)
    //获取页面栈
    let pages = getCurrentPages();
    //获取所需页面
    let prevPage = pages[pages.length - 2]; //上一页
    console.log("ewhfbherbv===2", prevPage.options);
    prevPage.setData({
      myData: "hbvher", //需要传过去的数据
    });
    wx.navigateBack({
      delta: 1,
    })
  },

说明:
getCurrentPages() 函数用于获取当前页面栈的实例,以数组形式按栈的顺序给出
pages[pages.length - 2] 是上一页,-1是当前页
然后直接调用上一页的setData方法
message 是上一页定义的变量,e.currentTarget.dataset.msg为当前页要传的数据
然后调用wx.navigateBack返回,delta表示返回的页数,
如果delta大于现有页面数,则返回到首页

2.2 接受

 /**
       * 页面的初始数据
       */
      data: {
            myData: ""
      },
      /**
       * 生命周期函数--监听页面显示
       */
      onShow: function () {
            var that=this;
            let pages = getCurrentPages();
            let currPage = pages[pages.length - 1];
            console.log("ewhfbherbv===3", that.data.myData);    
      },


  • 4
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
微信小程序有多种方法可以返回一页面。其中一种方法是使用wx.navigateBack()函数。这个函数可以返回到小程序页面栈中的上一个页面。你可以通过设置delta参数来指定返回页面数。例如,如果你想返回上一个页面,可以将delta设置为1。\[2\] 另一种方法是使用wx.redirectTo()函数。这个函数可以关闭当前页面,并跳转到应用内的另一个页面。跳转后,左上角会出现返回小箭头,点击后可以返回原本页面。但是需要注意的是,这个函数不能跳转到tabbar页面。\[1\] 还有一种方法是使用wx.navigateTo()函数。这个函数可以在保留当前页面的情况下,跳转到应用内的另一个页面。跳转后,左上角也会出现返回小箭头,点击后可以返回原本页面。\[3\] 总结起来,微信小程序返回一页面的方法包括使用wx.navigateBack()、wx.redirectTo()和wx.navigateTo()函数。具体使用哪种方法取决于你的需求和场景。 #### 引用[.reference_title] - *1* *3* [微信小程序返回一页的各种方法](https://blog.csdn.net/ARLENE2/article/details/129437624)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [微信小程序返回一级页面并自动刷新数据](https://blog.csdn.net/qq_42740298/article/details/128326542)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值