知識(shí)
不管是網(wǎng)站,軟件還是小程序,都要直接或間接能為您產(chǎn)生價(jià)值,我們?cè)谧非笃湟曈X(jué)表現(xiàn)的同時(shí),更側(cè)重于功能的便捷,營(yíng)銷(xiāo)的便利,運(yùn)營(yíng)的高效,讓網(wǎng)站成為營(yíng)銷(xiāo)工具,讓軟件能切實(shí)提升企業(yè)內(nèi)部管理水平和效率。優(yōu)秀的程序?yàn)楹笃谏?jí)提供便捷的支持!
您當(dāng)前位置>首頁(yè) » 新聞資訊 » 小程序相關(guān) >
微信小程序頁(yè)面返回問(wèn)題
發(fā)表時(shí)間:2020-9-23
發(fā)布人:葵宇科技
瀏覽次數(shù):143
一、回退上一級(jí)頁(yè)面 beforePage
返回頁(yè)面同時(shí)需要刷新數(shù)據(jù)
var pages = getCurrentPages(); //當(dāng)前頁(yè)面
var beforePage = pages[pages.length - 2]; //前一頁(yè)
wx.navigateBack({
success: function () {
beforePage.onLoad(); // 執(zhí)行前一個(gè)頁(yè)面的onLoad方法
}
});
二、回退 3 級(jí)頁(yè)面 wx.navigateBack
當(dāng)我們頁(yè)面跳轉(zhuǎn)到三級(jí)頁(yè)面后,點(diǎn)擊左上角的返回按鈕,能夠直接返回到首頁(yè)
- wx.navigateBack 這個(gè)方法可以返回界面 在 onUnload 觸發(fā)的時(shí)候可以執(zhí)行。但是我發(fā)現(xiàn)這個(gè)方法確實(shí)可以回到首頁(yè),但是他會(huì)一個(gè)一個(gè)界面返回,不能直接返回到首頁(yè)
onUnload:function(){
wx.navigateBack({
delta: 3
})
}
- 正常 A -> B -> C 都是通過(guò) wx.navigateTo 跳轉(zhuǎn)的,所以 wx.navigateBack 只能返回上一界面,如果要返回到A 界面就會(huì)出現(xiàn) C -> B -> A 的效果。
如果想實(shí)現(xiàn) A -> B -> C 當(dāng) C 點(diǎn)擊返回時(shí), 實(shí)現(xiàn)直接 C -> A 這種效果就只能 A -> B 通過(guò) wx.navigateTo 跳轉(zhuǎn) B -> C 通過(guò) wx.redirectTo 跳轉(zhuǎn),跳轉(zhuǎn)觸發(fā)后 B 頁(yè)面就會(huì)被銷(xiāo)毀,C 頁(yè)面再返回 wx.navigateBack 就會(huì)直接到 A 了。
wx.redirectTo({
url: url
})
三、回退 4 級(jí)或者更多級(jí)頁(yè)面,wx.reLaunch
onUnload() {
console.log('返回按鈕')
wx.reLaunch({
url: '../../pages/index'
})
}
四、返回多級(jí)頁(yè)面,同時(shí)刷新
比如我們現(xiàn)在希望在第四級(jí)頁(yè)面返回首頁(yè)后刷新,我們需要在 onShow 方法中調(diào)用 onLoad() 方法
- 頁(yè)面需要帶參進(jìn)來(lái)的情況
onShow() {
this.onLoad({
uid: this.$parent.globalData.enterid
})
}
- 頁(yè)面不需要帶參的情況
onShow() {
this.onLoad()
}
五、帶參數(shù)返回上個(gè)頁(yè)面
- 當(dāng)前頁(yè)面
var pages = getCurrentPages(); //當(dāng)前頁(yè)面
var prevPage = pages[pages.length - 2]; //上個(gè)頁(yè)面
// 直接給上一個(gè)頁(yè)面賦值
prevPage.setData({
params: this.data.params
});
wx.navigateBack({
delta: 1
})
- 要跳轉(zhuǎn)的頁(yè)面
data: {
params: null,
},
onShow: function () {
let pages = getCurrentPages();
let currPage = pages[pages.length - 1];
// 將攜帶的參數(shù)賦值
this.setData({
params: currPage.data.params,
});
}
經(jīng)過(guò)測(cè)試發(fā)現(xiàn)只在 data 里定義參數(shù),不寫(xiě) onShow() 方法,也可以獲取到上個(gè)頁(yè)面?zhèn)鬟^(guò)來(lái)的值
六、對(duì)于攜帶不同參數(shù)的情況,頁(yè)面跳轉(zhuǎn)最好不要采用帶參跳轉(zhuǎn)方式,采用全局變量方式比較好
比如:
從 A 頁(yè)面到 B 頁(yè)面帶的對(duì)象 a = {name: '小明', age: '18'}
從 C 頁(yè)面到 B 頁(yè)面帶的對(duì)象 c = {pname: '小紅', page: '17'}
像這樣對(duì)象內(nèi)部的字段名稱(chēng)不一樣,B頁(yè)面在拿到該對(duì)象后無(wú)法解析
在全局中定義變量 e ,在 A 頁(yè)面中跳轉(zhuǎn)前設(shè)置
this.$parent.globalData.e.name = a.name;
this.$parent.globalData.e.age = a.age;
wx.navigateTo({
url: 'B'
})
在全局中定義變量 e ,在 C 頁(yè)面中跳轉(zhuǎn)前設(shè)置
this.$parent.globalData.e.name = c.pname;
this.$parent.globalData.e.age = c.page;
wx.navigateTo({
url: 'B'
})
在 B 頁(yè)面 onLoad() 方法中取值
this.obj = this.$parent.globalData.e,
console.log(obj.name);
console.log(obj.age);
相關(guān)案例查看更多
相關(guān)閱讀
- 云南小程序公司
- 云南網(wǎng)站開(kāi)發(fā)
- 網(wǎng)絡(luò)公司聯(lián)系方式
- 云南小程序代建
- 云南做軟件
- 網(wǎng)站建設(shè)快速優(yōu)化
- 云南網(wǎng)站建設(shè)哪家好
- 網(wǎng)站建設(shè)特性
- 網(wǎng)站建設(shè)專(zhuān)業(yè)品牌
- 網(wǎng)站建設(shè)哪家強(qiáng)
- 網(wǎng)站建設(shè)制作
- 日歷組件
- 云南小程序制作
- 小程序開(kāi)發(fā)平臺(tái)前十名
- painter
- 網(wǎng)站建設(shè)價(jià)格
- 云南網(wǎng)絡(luò)營(yíng)銷(xiāo)
- 云南省住房建設(shè)廳網(wǎng)站
- 昆明小程序設(shè)計(jì)
- 小程序定制開(kāi)發(fā)
- 微信小程序開(kāi)發(fā)入門(mén)課程
- 制作一個(gè)小程序
- 曲靖小程序開(kāi)發(fā)
- 網(wǎng)絡(luò)營(yíng)銷(xiāo)
- 買(mǎi)小程序被騙
- 云南網(wǎng)站建設(shè)電話
- 江蘇小程序開(kāi)發(fā)
- 快排推廣
- 百度小程序開(kāi)發(fā)公司
- 做小程序被騙