// router.js
module.exports = {
// 保留当前页面,跳转到应用内的某个页面。但是不能跳到 tabbar 页面。
// 使用 wx.navigateBack 可以返回到原页面。小程序中页面栈最多十层。
navigateTo(object) {
if (getCurrentPages().length > 9) {
this.redirectTo(object);
// this.reLaunch(object)
} else {
wx.navigateTo(object);
}
},
// 其他跳转不处理
// 注意:调用 navigateTo 跳转时,调用该方法的页面会被加入堆栈,而 redirectTo 方法则不会。
// 关闭当前页面,返回上一页面或多级页面。可通过 getCurrentPages 获取当前的页面栈,决定需要返回几层。
navigateBack(object) {
wx.navigateBack(object);
// wx.navigateBack({ delta: 2 });
},
// 跳转到 tabBar 页面,并关闭其他所有非 tabBar 页面
switchTab(object) {
wx.switchTab(object);
},
// 关闭当前页面,跳转到应用内的某个页面。但是不允许跳转到 tabbar 页面。
redirectTo(object) {
wx.redirectTo(object);
},
// 关闭所有页面,打开到应用内的某个页面
reLaunch(object) {
wx.reLaunch(object);
}
};
// 不加入堆栈跳转
wx.redirectTo({
url: '../../pages/address/address',
})
// 关闭所有页面,打开到应用内的某个页面
wx.reLaunch({
url: '../../pages/address/address',
})
// 保留其他页面 跳转 带返回按钮
wx.navigateTo({
url: '../../pages/address/address',
})
设置返回按钮:
有页面a 页面b 页面c c页面是保存页返回到b 但是上一页会保存为c 而不是a 这里在b页开始书写代码,
// 生命周期函数--监听页面加载
onLoad: function(options) {
var pages = getCurrentPages(); // 获取页面栈
console.log(pages);
var prevPage = pages[pages.length - 2]; // 上一个页面
prevPage.setData({
// 给上一个页面变量赋值
isRouteMy: "2",
});
},
onShow: function() {
// 获取当前路由判断是否要返回上一页(防止只有一个项目不能返回)
if (this.data.isRouteMy == '2') {
wx.switchTab({
url: '../../pages/personal/personal',
success: function (e) {
var page = getCurrentPages().pop();
if (page == undefined || page == null) return; page.onLoad();
}
})
}
网友评论