微信小程序返回上一页数据自动更新

需求

For example,首页有一篇文章,点击进入文章详情页,首页和详情页都有收藏功能,如何在详情页收藏成功之后,首页的收藏状态可以 无刷新修改?

getCurrentPages()

getCurrentPages()函数用于获取当前页面栈的实例,以数组形式按栈的顺序给出,第一个元素为首页,最后一个元素为当前页面。我们可以从控制台打出该值(从首页进入第二层页面):
这里写图片描述

从图中可以看出,每一个元素都包含了对应页面栈里面的所有方法;所以我们也可以通过这种方式,获取到上一个层页面里面的data值,并且能修改data值,从而做到返回上一页不刷新页面,既能改变页面中的显示状态:

/**
*
*/
_updateHome() {
    // 从首页过来 && 验证倒数第二个页面栈为首页(当前页的上一页)
    let pages = getCurrentPages();
    let l = pages.length;
    let home = pages[l - 2];

    if (home && home.route.indexOf('home') > -1) {
      let read = home.data.read;
      home.setData({
        read: !read  // 将修改完的状态赋值给home页的Data
      });
    }
  },

这样就解决了返回上一页 不刷新页面更新状态了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值