wx.navigateBack()返回上一頁面如何傳引數?
阿新 • • 發佈:2018-12-17
wx.navigateBack()不能像其他導航一樣通過url傳參,因此只能使用其他方法:
先說兩個可以實現但弊端很大的方法:
1、將資料存到app.globalData中,然後返回上一頁面從全域性資料中獲取
弊端:資料為全域性資料,必須謹慎維護,否則全域性某處做出修改,牽一髮而動全身
2、將資料存到本地快取中(localStorage),然後從快取中獲取
弊端:本地快取空間大小存在限制,若空間不足會自動清除其中最久未使用的資料,同樣可能會造成意想不到的影響
so?還有一個比較完美的方法,就是:
使用getCurrentPages()函式獲取頁面棧的例項,以陣列形式按棧的順序給出,第一個元素為首頁,最後一個元素為當前頁面。
var pages = getCurrentPages();
var currPage = pages[pages.length - 1]; //當前頁面
var prevPage = pages[pages.length - 2]; //上一個頁面
//直接呼叫上一個頁面物件的setData()方法,把資料存到上一個頁面中去
prevPage.setData({
data:data
});
wx.navigateBack({
delta: 1
})
--------------------- 作者:zSY_snake 來源:CSDN 原文:https://blog.csdn.net/zSY_snake/article/details/81216448