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

需求

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

getCurrentPages()

getCurrentPages()函数用于获取当前页面栈的实例,以数组形式按栈的顺序给出,第一个元素为首页,最后一个元素为当前页面。我们可以从控制台打出该值(从首页进入第二层页面):
微信小程序返回上一页数据自动更新_第1张图片

从图中可以看出,每一个元素都包含了对应页面栈里面的所有方法;所以我们也可以通过这种方式,获取到上一个层页面里面的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
      });
    }
  },

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

你可能感兴趣的:(数据更新,小程序)