非tab页面的wx.redirectTo和wx.navigateTo跳转后白屏
发布于 6 年前 作者 juan79 2898 次浏览 来自 问答

你想反馈一个 Bug 还是 提一个需求?

反馈一个bug

如果是 Bug:

* Bug 表现是什么?预期表现是什么?

在IDE上的时候,页面跳转正常。

使用真机远程调试的时候,ios和安卓都有白屏的情况,

具体来说,从非tab页面A进入到非tab页面B的时候,无论选择wx.redirectTo跳转还是用wx.navigateTo跳转,都是白屏。B页面的onload()和onready()都没有加载。此时A和B应该都没有超过10层。tab页面—>非tab页面O—>非tab页面A—>非tab页面B


其实从非tab页面O—>非tab页面A之前也会
出现白屏的情况,在跳转函数上加了个setTimeout函数以后,目前可以正常跳转了。但是这应该不是个根本的办法吧。

另外,跳转的时候,debugger发现,会返回wx.redirectTo的回调函数success:

success:res=>{
                  console.log('成功跳转',res)
              },

问题图片:

* 如何复现?

* 提供一个最简复现 Demo

js代码:

nextpage:function(){
    debugger
    var _this = this;
    var ApiHost = app.globalData.ApiHost
    var token = 'token '+ wx.getStorageSync('token')
    var order_id = _this.order_id
    var id  = _this.id
    var customer = _this.customer
    // ???此处之前的method为PATCH ,但是因为wx.request并不支持这种方法,
    // 会导致nextpage函数报invoke错误,所以改为PUT
    setTimeout(function(){
    wx.request({
        url: ApiHost +  "/api/v1/orders_v4/" + order_id + "/",
        method: 'PUT',
        header:{
          'AUTHORIZATION': token // 默认值
        },
        data: {
          goods: id,
        },
        success: res => {
          debugger
            utils.logWrite('用户进入info页面', res)
            setTimeout(function(){
            wx.redirectTo({
              url:'../skeletonTest/skeletonTest',
              // url:'../info/info?order_id='
              //   +_this.order_id +'&customer='
              //   +_this.customer,
              success:res=>{
                  console.log('成功跳转',res)
              },
              fail:err=>{
                debugger
                  console.log('跳转失败',err)
              }          
            })
                },200)
        },
        fail: err => {
          debugger
          console.log(_this)
          utils.logWrite('进入手机套餐页失败',err)
        }
    })
    },200)
  
  }
<view class="weui-btn-area">
         <button class="weui-btn"  bindtap="nextpage">下一步</button>
</view>
回到顶部