微信小程序中经常遇到的需求就是我提交了一个表单或者进行了一个操作,需要在我的个人中心页面中实时显示出来,但是小程序中的tabbar切换类似于tab切换 并不会进行页面刷新请求
所以总是会造成一些数据更新不及时问题
而阅读小程序文档发现了小程序是给提供了解决办法的
onShow
/** * 生命周期函数--监听页面显示 */ onShow: function () { },
这个方法在页面进行显示的时候就会重新执行一次,所以我想到的解决方案就是将需要进行实时更新的数据进行封装方法
getreloadLog:function(){ wx.showLoading({ title: \'加载中\', })var that = this; var query = db.collection(\'log\').orderBy(\'Time\', \'DESC\').limit(10); if(this.data.isWhere){ query = query.where({ Date:that.data.date }) } query.get().then(res => { that.setData({ log: res.data, page: that.data.page + 1, isAll:false }); wx.hideLoading(); }); },
这样的就可以在其他方法中进行调用了
/** * 生命周期函数--监听页面显示 */ onShow: function () { this.getreloadLog(); },
或者再进行删除成功的时候
deleteLog: function (e) { console.log(e.currentTarget.id) var that = this; wx.showLoading({ title: \'请稍等,正在删除\', }) db.collection(\'log\').doc(e.currentTarget.id).remove({ success: function () { wx.hideLoading(); wx.showToast({ title: \'删除成功\', icon: \'success\' }); that.getreloadLog(); } }) },
这样就实现了tabbar切换的时候进行刷新与删除的时候刷新当前列表数据