小程序采坑记(五) 动态改变数据

项目当时有个需求是,在详情页面点击关注,要把关注的内容传给首页显示出来,开始的时候,我以为是把数据传给后台,显示关注成功就可以了,这样只能实现页面刷新时,可以在首页显示关注的内容,但是需求不是这样的,是要在点击了关注后,返回首页时就显示出来,没有刷新,也没有重新请求数据。

小程序采坑记(五) 动态改变数据

首先是在小程序的公共逻辑页面app.js里面加上这两个方法。

然后是在你需要传数据的页面调用setChangeData()方法。

小程序采坑记(五) 动态改变数据

首页是引入APP

小程序采坑记(五) 动态改变数据

然后用app.setChangedData(data),把需要改变的数据传到app.js里面。

然后在需要显示改变数据的页面接受这个data就可以了。

小程序采坑记(五) 动态改变数据

首先是引入app.js

然后调用app.addListener(callback),注意这里是一个方法。

好好整理了下这个逻辑

  1. addListener: function (callback) {

    this.callback = callback;
    },

这个方法实时监听,有没有一个callback方法放到app.js里面,如果某个页面调用了这个监听器,并传入了参数,即callback方法,就会在app.js里面放入这个callback方法。

如果某个页面调用了
setChangedData: function (data) {

this.data = data;
if (this.callback != null) {
  this.callback(data);
}

}

这个方法时,就会把这个数据data传到app.js里面,因为这个方法,调用了app.js的callback方法,所以就会把数据传到addListen里面。