微信小程序之返回上一頁(yè)實(shí)現(xiàn)方法
先介紹三種跳轉(zhuǎn)方式:
1.B頁(yè)面自帶返回按鈕
-
wx.navigateTo(OBJECT) 保留當(dāng)前頁(yè)面,跳轉(zhuǎn)到應(yīng)用內(nèi)的某個(gè)頁(yè)面,使用wx.navigateBack可以返回到原頁(yè)面
復(fù)制代碼
2.B頁(yè)面不帶返回按鈕
-
wx.redirectTo(OBJECT)關(guān)閉當(dāng)前頁(yè)面,跳轉(zhuǎn)到應(yīng)用內(nèi)的某個(gè)頁(yè)面。
3.B頁(yè)面不帶返回按鈕
-
wx.switchTab(OBJECT) 跳轉(zhuǎn)到 tabBar 頁(yè)面,并關(guān)閉其他所有非 tabBar 頁(yè)面
自己在B頁(yè)面人工添加返回按鈕到A頁(yè)面
-
wxml:
-
bindtap="navigateBack"
-
js:
-
navigateBack: function () {
-
var self = this;
-
var pages = getCurrentPages();
-
if (pages.length == 1) {
-
if (self.data.circleId && self.data.circleId >0) {
-
wx.redirectTo({
-
url: '../../circle/index/index?circleId=' + self.data.circleId
-
+ '&circleName=' + (self.data.circleName || '')
-
});
-
} else {
-
wx.switchTab({
-
url: "../../home/grouplist/grouplist"
-
});
-
}
-
} else {
-
wx.navigateBack({ changed: true });//返回上一頁(yè)
-
}
-
},
題外話:
1、A -> B -> C C直接返回A
A -> B通過(guò) wx.navigateTo 跳轉(zhuǎn)
B -> C 通過(guò) wx.redirectTo 跳轉(zhuǎn).跳轉(zhuǎn)觸發(fā)后 B 頁(yè)面就會(huì)被銷毀, C 頁(yè)面再返回 wx.navigateBack 就會(huì)直接到 A 了
2、A -> B -> C 返回效果C -> B -> A
正常 A -> B -> C 都是通過(guò) wx.navigateTo 跳轉(zhuǎn)的,所以 wx.navigateBack 只能返回上一界面