支付宝小程序框架 页面·getCurrentPages方法
getCurrentPages()
方法用于获取当前页面栈的实例,返回页面数组栈。第一个元素为首页,最后一个元素为当前页面。
框架以栈的形式维护当前的所有页面。路由切换与页面栈的关系如下:
路由方式 | 页面栈表现 |
---|---|
初始化 | 新页面入栈 |
打开新页面 | 新页面入栈 |
页面重定向 | 当前页面出栈,新页面入栈 |
页面返回 | 当前页面出栈 |
Tab 切换 | 页面全部出栈,只留下新的 Tab 页面 |
下面代码可以用于检测当前页面栈是否具有 5 层页面深度。
if (getCurrentPages().length === 5) {
my.redirectTo({
url: '/pages/logs/logs'
});
} else {
my.navigateTo({
url: '/pages/index/index'
});
}
注意: 不要尝试修改页面栈,会导致路由以及页面状态错误。
常见问题
Q:getCurrentPages 方法怎么获取页面路径?
A:JSON.stringify(getCurrentPages()[N].proto.route),可以获取到页面路径(N 为页面数组栈中页面对象所在序号,最大值为当前页)。
Q:getCurrentPages 方法可以获取到参数吗?
A:不可以,只能获取页面栈,无法获取参数。