码迷,mamicode.com
首页 > 其他好文 > 详细

通过获取页面栈来刷新页面

时间:2019-11-22 10:27:50      阅读:79      评论:0      收藏:0      [点我收藏+]

标签:cat   refresh   null   fine   pre   efi   job   his   update   

// 刷新上一个页面
  __refreshBeforePage(){
    let beforePage = getCurrentPages().shift() //上一个页面实例对象,getCurrentPages()获取到当前页面栈
    if (beforePage == undefined || beforePage == null) return
    //只刷新上一个页面是pagea/my/my的页面
    if (beforePage.route == pages/my/my) {
      beforePage.onLoad()
    }
  },

 

// 刷新下一个页面
  __refreshNextPage(){
    let nextPage = getCurrentPages().pop() //下一个页面实例对象
    if (nextPage == undefined || nextPage == null) return
    nextPage.onLoad()
  },

 

需要注意:

通过获取页面实例对象,触发onLoad()来刷新上一个/下一个页面时,onLoad()中必须是重置data才可以,this.setData({user: res.data[0]})

如果onLoad()中的data是拼接,this.setData({jobs: oldData.concat(res.data)}),则这种刷新方法有会出错,原因:

oldData的值不变->改变了数据库中oldData()的值,页面对象触发onLoad()->oldData新增res.data,但页面中oldData的值还是原来的,一直没变

 __updateStatusTo0(id){
    jobs.doc(id).update({
      data: {
        status: 0  //这里修改了数据库中的值
      }
    })
    .then(res=>{
      this.__refreshNextPage() //刷新下一页job-manage,但页面onLoad()中data是拼接处理,原数据oldData不会变
    })
  },

 

 

通过获取页面栈来刷新页面

标签:cat   refresh   null   fine   pre   efi   job   his   update   

原文地址:https://www.cnblogs.com/qq254980080/p/11909931.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!