一个关于navigateTo和navigateBack的问题
发布于 5 年前 作者 gangtan 12129 次浏览 来自 问答

由于小程序的5层限制问题,我想在某些navigateTo时判断如果有超过5层的风险,我会先navigateBack几个,再navigateTo到目标页面。

但是问题来了,先看代码:

var pages = getCurrentPages();
var delta = pages.length - index;
wx.navigateBack({
  delta: delta,
  complete: function () {
  console.log("complete");
  // setTimeout(function () {
     wx.navigateTo({
       url: '/pages/addevent/addevent'
     });
  // }, 700);
  }
})

这种写法只有在开发工具中是正常的。但是到了手机上就会有问题,原因是执行了navigateBack后会触发动画,在动画尚未完成的情况下navigateTo无效,所以就有了上面代码里的注释部分setTimeout,但是700ms不是在每台手机都好用。部分手机也是无效的。

我想问的是,动画播放期间navigateTo无效,是刻意而为之,还是一个不小心的写法?

回到顶部