收藏
回答

开发者工具navigateTo的success回调时机与真机不一致

问题模块 框架类型 问题类型 操作系统 工具版本
开发者工具 小程序 需求 Windows 1.02.1810190

场景:在wx.navigateTo方法的success回调中getCurrentPages()获取当前页面栈


真机预览(iOS)表现:页面栈的最后一项为跳转目标页

开发者工具表现:页面栈的最后一项为原页面(目标页未入栈) 需要setTimeout一秒左右获取当前页面栈


希望开发者工具的表现能与真机一致,在目标页入栈后再执行success回调

最后一次编辑于  2018-11-05  (未经腾讯允许,不得转载)
回答关注问题邀请回答
收藏

1 个回答

  • 是柿子啊
    是柿子啊
    2018-11-05

    提供一下出现问题的机型和微信版本,以及能复现问题的简单代码片段(https://developers.weixin.qq.com/miniprogram/dev/devtools/minicode.html)。

    2018-11-05
    赞同
    回复 1
    • Maverick
      Maverick
      2018-11-05

      就是wx.navigateTo方法,真机会在页面入栈后执行success回调,而开发者工具会在新页面入栈前执行。一句代码还需要提交片段吗.


      wx.navigateTo({
          url: '/pages/test/test',
          success(){
              const pages = getCurrentPages();
              console.log(pages[pages.length-1]) //真机在此时输出的为/pages/test/test页的实例,开发者工具输出的为原页面实例,即开发者工具在目标页未入栈时就执行了success回调
          }
      })


      用setTimeout可以解决,但体验并不好,还是希望能开发者工具行为和真机尽量保持一致

      2018-11-05
      回复