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

Posted qq254980080

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了通过获取页面栈来刷新页面相关的知识,希望对你有一定的参考价值。

// 刷新上一个页面
  __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不会变
    })
  },

 

 

以上是关于通过获取页面栈来刷新页面的主要内容,如果未能解决你的问题,请参考以下文章

前端防扒代码片段

前端防扒代码片段

前端防扒代码片段

前端防扒代码片段

如何停止 jQuery 帖子页面刷新

使用react-google-maps刷新不需要的页面。