返回上一個打開的頁面并傳遞一個參數(shù)。有種辦法就是使用
假如從B頁面返回A頁面:
var pages = getCurrentPages();
var prevPage = pages[pages.length - 2]; //上一個頁面
prevPage.setData({
mdata:1
})
經(jīng)過測試,在uni.app中使用B頁面使用setData設(shè)置A頁面參數(shù)無法實現(xiàn)(應(yīng)該是被更改為常量屬性了)。
打印console.log(prevPage)前一頁面對象可得:
方法1:我們可以使用A頁面原有方法
B頁面?zhèn)鬟f:
var object={
sx1:"參數(shù)1",
sx2:"參數(shù)2",
}
prevPage.onShow(object);
uni.navigateBack();
A頁面接收參數(shù):
onShow(object){
if(!!object){
console.log(object)
}
}
方法2:A頁面自定義方法接收參數(shù)
B頁面?zhèn)鬟f:
var object={
sx1:"參數(shù)1",
sx2:"參數(shù)2",
}
prevPage.$vm.otherFun(object);//重點$vm
uni.navigateBack();
A頁面接收參數(shù):
otherFun(object){
if(!!object){
console.log(object)
}
}
如果使用uni.navigateBack該怎么傳值呢
uni. e m i t ( ) 傳值和 u n i . emit()傳值和uni. emit()傳值和uni.on()接收
B頁面返回A頁面
B頁面:
uni.$emit('update',{msg:'頁面更新'})
uni.navigateBack({
delta: 1
});
A頁面:文章來源:http://www.zghlxwxcb.cn/news/detail-563729.html
onShow(){
uni.$on('update', function(e){
console.log('監(jiān)聽到事件來自 update ,攜帶參數(shù) msg 為:'+e)
})
},
- 注意接收的寫在onShow里面。寫在onload是不會執(zhí)行的。
返回上個頁面讓他重新執(zhí)行onLoad里面的方法:(這種方法不適用于傳遞參數(shù)的頁面,因為返回的時候那個option是獲取不到的)文章來源地址http://www.zghlxwxcb.cn/news/detail-563729.html
uni.navigateBack({
delta: 2,
success: () => {
let page = getCurrentPages().pop(); //跳轉(zhuǎn)頁面成功之后
if (page) {
let e = {};
page.onLoad(e); //執(zhí)行上個頁面的方法
}
}
})
到了這里,關(guān)于uni-app小程序uni.navigateBack返回上一個頁面并傳遞參數(shù).返回上個頁面并刷新的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!