zoukankan      html  css  js  c++  java
  • 微信小程序redirect 到tab不刷新

    // 更新2018/11/20:现在小程序的页面栈长度为10

    更正 2018/11/20:

    经过一段时间的实践,我发现以前方法存在很多问题,比如 getCurrentPages 方法并不在官方的 API 列表中,route 属性是私有的,存在被废弃/替代的可能;又比如原来的代码掺杂了许多业务无关的逻辑,变得冗余,不易后期维护。

    现在要实现原来的需求,我更推荐这样做:

    onLoad() {
        this.init()
    }
    
    init() {
        this.checkAuth()
            .then(this.fetchData)
    }
    
    checkAuth() {
      // check authorization,return a Promise
    }
    
    fetchData() {
        // fetch api and render page
    }
    
    

    更正完毕

    需求:

    小程序需要判断用户是否登录,来显示不同的内容。当登录失效后需要重新登录并刷新页面,一般我们用 redirect 或者 switchTab 方法进行页面间的跳转,通过getCurrentPages() 拿到页面栈(数组,最多510个),最后一个就是当前页面的路径。

    自然而然想到这样来刷新当前页:

    const reload= () => {
      let pages = getCurrentPages()
      if (pages.length === 0) return 
    
      let curPage = pages[pages.length - 1].__route__;
      wx.redirectTo({
          url: '/' + curPage
       })  
    
    }
    

    这段代码在小程序内页工作的很好,但一到tab页就GG思密达了——并!不!会!刷!新!

    下面的方法可以解决:

    const reload= () => {
      let pages = getCurrentPages()
      if (pages.length === 0) return 
      
      let curPage = pages[pages.length - 1];  
      curPage.onShow();
    }
     
    
  • 相关阅读:
    简易版Spring Ioc (转载)
    网站策划:网站用户需求分析
    js实现树形菜单
    js实现滑动门效果
    HTML的DOM对象的nodeName
    javascript实现页面悬浮导航
    jQuery EasyUI 窗口 – 创建简单窗口
    Exceptions
    Java Cookbook-Date and Times
    表单属性深入
  • 原文地址:https://www.cnblogs.com/fayin/p/6877430.html
Copyright © 2011-2022 走看看