微信小程序中的返回问题

最近小程序做挺多,这其中就有一个需求就是在执行完某项功能之后,点击页面上的返回要返回不同的地方

因为执行这项操作的流程不同,所以返回的路径也不同

  1. 返回上一页
  2. 返回A页面
  3. 返回B页面
backPageAfterSign() {
    // 在页面栈中有 B 就先返回B,无B就返回A
    const pages = getCurrentPages();
    let len = pages.length - 1
    let a = 'pages/pageA/pageA'
    let b = 'pages/pageB/pageB/'
    let index = pages.findIndex(item => item.route === a)
    let index2 = pages.findIndex(item => item.route === b)
    if (index2 > -1) {
        len = len - index2
    } else if (index > -1) {
        len = len - index
    } else {
        len = 1
    }
    wx.navigateBack({
        delta: len,
    })
}

大致就是这个思路,从页面栈中找到页面,再计算返回几层

posted @ 2023-06-16 15:16  Rins  阅读(93)  评论(0)    收藏  举报