关键词搜索

全站搜索
×
密码登录在这里
×
注册会员
×

已有账号? 请点击

忘记密码

已有账号? 请点击

使用其他方式登录

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

发布2022-05-25 浏览704次

详情内容

微信小程序开发时,在当前详情页面保存时,自动返回上一列表页面时,新添加的数据没有刷新,页面列表没有重新请求数据,可以利用页面onShow方法监听实现刷新。

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({
      reloadPage: true, //需要传过去的数据
    });
    wx.navigateBack({
      delta: 1,
    })
  },


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

2.2 接受

 /**
       * 页面的初始数据
       */
      data: {
            reloadPage: false
      },
      /**
       * 生命周期函数--监听页面显示
       */
      onShow: function () {
            if(this.data.reloadPage)
            console.log("ewhfbherbv===3", that.data.reloadPage);    
      },
点击QQ咨询
开通会员
返回顶部
×
  • 微信支付
微信扫码支付
微信扫码支付
请使用微信描二维码支付
×

提示信息

×

选择支付方式

  • 微信支付
确定支付下载