微信小程序> 【微信小程序】微信小程序层级跳转限制

【微信小程序】微信小程序层级跳转限制

浏览量:1105 时间: 来源:默认S

前面博文上面提到微信小程序有三种常见的跳转方式 navigateTo,redirectTo 和 reLaunch

10层的限制只是针对navigateTo ,redirectTo 和reLaunch不受此限制。

navigateTo :保留当前页面,跳转到应用内的某个页面,使用wx.navigateBack可以返回到原页面。

redirectTo :关闭当前页面,跳转到应用内的某个页面。

reLaunch: 关闭所有页面,打开到应用内的某个页面

思路:通过getCurrentPages()来获取页面栈数组,然后通过判断数组当中判断是否已存有当前页面然后做出相应的跳转就可以避免navigateTo跳转的10层限制了!


 

 具体代码如下(仅供参考,具体以实际情况为准):

 //跳转B页面  mulubtnd: function(e){    var id = e.currentTarget.dataset.id;    redirect.redirectTo('./catalog?id='+id)  },
var config = require('../../utils/config.js');var redirect = require('../../utils/redirect.js');var util = require('../../utils/util.js');var app = getApp();Page({  /**   * 页面的初始数据   */  data: {    domainImg: config.DOMAIN_IMGS,    list: [],    isFirst: false, //是否是第一次进入  },  // 跳转下一个页面  listItemTap:function(e){    var that = this    var iesd = e.currentTarget.dataset.id;    if (that.data.isFirst) { //第一次保留本页面      redirect.navigateTo('./catalog_nextPage?id=' + iesd)    } else {      redirect.redirectTo('./catalog_nextPage?id=' + iesd)    }  },  onLoad: function(options) {    wx.hideShareMenu()    var _eids = options.id;    var that = this;    var url = config.DOMAIN_API.wikiListcontent;    var data = {      id: _eids,    }    //发起get请求,使用方式如下:    util.ajaxPost(url, data).then((res) => {//成功处理      that.setData({        list: res      })    }).catch((errMsg) => {//错误处理,已统一处理,此处可以不需要       });    var pages = getCurrentPages();    var obj = {}    //isFirst页面栈是否含有本页面,目的为了避免通过目录无限循环,解决小程序10层页面的问题    for (var i in pages) {      //将循环数组中的每个数赋值给item 作为对象中的键      var item = pages[i].route      if (obj[item]) {//这句的意思是对象中以item作为键存在吗,如果存在的话,就让这键的值再加1        obj[item] = obj[item] + 1        that.setData({          isFirst : false        })      } else {        //如果不存在等于1,多次循环就可得到结果        obj[item] = 1        that.setData({          isFirst: true        })      }    }  },  /*** 生命周期函数--监听页面初次渲染完成*/  onReady: function() {  },  /*** 生命周期函数--监听页面显示*/  onShow: function() {  },  /*** 生命周期函数--监听页面隐藏*/  onHide: function() {  },  /*** 生命周期函数--监听页面卸载*/  onUnload: function() {  },  /*** 页面相关事件处理函数--监听用户下拉动作*/  onPullDownRefresh: function() {  },  /*** 页面上拉触底事件的处理函数*/  onReachBottom: function() {  },  /*** 用户点击右上角分享*/  onShareAppMessage: function() {  }})

 

微信小程序

版权声明

即速应用倡导尊重与保护知识产权。如发现本站文章存在版权问题,烦请提供版权疑问、身份证明、版权证明、联系方式等发邮件至197452366@qq.com ,我们将及时处理。本站文章仅作分享交流用途,作者观点不等同于即速应用观点。用户与作者的任何交易与本站无关,请知悉。

产品经理

手机 : 13312967497

擅长 : 小程序流量变现

扫码领取礼包

最新资讯

热门模板

  • 头条
  • 搜狐
  • 微博
  • 百家
  • 一点资讯
  • 知乎