美文网首页
微信小程序踩坑系列(二)——页面返回

微信小程序踩坑系列(二)——页面返回

作者: 胡自鲜 | 来源:发表于2018-10-23 16:42 被阅读0次

    1.回退上一级页面 beforePage

    1.返回页面同时需要刷新数据

       var pages = getCurrentPages();//当前页面
       var beforePage = pages[pages.length-2];//前一页
       wx.navigateBack({
           success: function() {
                  beforePage.onLoad(); // 执行前一个页面的onLoad方法
           }
       });
    

    2.回退3级页面 wx.navigateBack

    当我们页面跳转到三级页面后点击左上角的返回按钮,能够直接返回到首页

    1.wx.navigateBack 这个方法可以返回界面 在 onUnload 触发的时候可以执行。但是我发现这个方法确实可以回到首页,但是他会一个一个界面返回,不能直接返回到首页

    onUnload:function(){
      wx.navigateBack({
        delta:9
      })
    }
    

    2.正常 A -> B -> C 都是通过 wx.navigateTo 跳转的,所以 wx.navigateBack 只能返回上一界面,如果要返回到A 界面就会出现 C -> B -> A 的效果。

    如果想实现 A -> B -> C 当 C 点击返回时, 实现直接 C -> A 这种效果 就只能
    A -> B 通过 wx.navigateTo 跳转 B -> C 通过 wx.redirectTo 跳转.跳转触发后 B 页面就会被销毁, C 页面再返回 wx.navigateBack 就会直接到 A 了。

    wx.redirectTo({
      url:url
    })
    

    3.回退4级或者更多级页面,wx.reLaunch

    onUnload() {
          console.log('返回按钮')
          wx.reLaunch({
            url: '../../pages/index'
          })
        }
    

    4.返回多级页面。同时刷新

    比如我们现在希望在第四级页面返回首页后刷新
    我们需要在onShow方法中调用onLoad()方法

    1.页面需要带参进来的情况
    onShow() {
       this.onLoad({uid:this.$parent.globalData.enterid})
    }
    
    2.页面不需要带参的情况
    onShow() {
       this.onLoad()
     }  // 只在Page中存在的页面生命周期函数
    
    注意:页面跳转最好不要带参跳转,采用全局变量比较好。
    比如:从 A 页面到 B 页面带的对象 c = {name:'小明',age:'18'},
         从 AA 页面到 B 页面带的对象 d = {pname:'小红',page:'17'},
    

    对象内部的字段名称不一样,B页面在拿到该对象后无法解析
    在全局中定义e ,在 A 页面中跳转前设置

            self.$parent.globalData.e.name = c.name;
            self.$parent.globalData.e.age = c.age;
            wx.navigateTo({
              url: 'B'
            })
    

    在全局中定义e ,在 AA 页面中跳转前设置

            self.$parent.globalData.e.name = d.pname;
            self.$parent.globalData.e.age = d.page;
            wx.navigateTo({
              url: 'B'
            })
    

    在B页面中onLoad()方法中

     this.obj = this.$parent.globalData.e,
    console.log(obj.name);
    console.log(obj.age);
    

    相关文章

      网友评论

          本文标题:微信小程序踩坑系列(二)——页面返回

          本文链接:https://www.haomeiwen.com/subject/lsrazftx.html