例如:
//A頁面相關程式碼
wx.navigateTo({
url:"/pages/Apage/Apage?a=1&b=2"
})
//B頁面相關程式碼
Page({
onLoad:function(options){
var a=options.a;//a的值:1
var b=options.b;//b的值:2
}
但這個方法是對於目標檔案還沒建立時有效,因為一個頁面onLoad函式在頁面生命週期中,只執行一次。如果是A跳到B,再回到A並把B的資料傳回來,就沒法實現了。
一、使用全域性儲存資料
1.將要儲存的資料,儲存到App物件上(如globalData屬性)。
var app=getApp()
app.globalData.mydata={a:1,b:2}//
wx.navigataBack();//返回上一頁
2.將要傳遞的資料,儲存在小程式本地資料快取(Storage)中。
wx.setStorage({
key:"mydata",
data:{a:1,b:2},
success:function(){
注:全域性資料儲存,必須謹慎管理,生命週期等問題
二、從頁面路由棧中直接獲取和操作目標Page物件
這種方式,是透過呼叫小程式的API getCurrentPages(),來獲取當前頁面路由棧資訊,這個路由棧是按照頁面路由順序存放著相應的Page物件,可以很容易獲得上一頁的Page物件,從而使直接呼叫Page物件的屬性和方法成為可能。
var pages=getCurrentPages();
var currPage=pages[pages.length-1];//當前頁面
var prevPage=pages[pages.length-2];//上一個頁面
//現在就可以,直接呼叫上一個頁面的setData()方法,把資料存到上一個頁面中去
prevPage.setData({
mydata:{a:1,b:2}
例如:
//A頁面相關程式碼
wx.navigateTo({
url:"/pages/Apage/Apage?a=1&b=2"
})
//B頁面相關程式碼
Page({
onLoad:function(options){
var a=options.a;//a的值:1
var b=options.b;//b的值:2
}
})
但這個方法是對於目標檔案還沒建立時有效,因為一個頁面onLoad函式在頁面生命週期中,只執行一次。如果是A跳到B,再回到A並把B的資料傳回來,就沒法實現了。
一、使用全域性儲存資料
1.將要儲存的資料,儲存到App物件上(如globalData屬性)。
var app=getApp()
app.globalData.mydata={a:1,b:2}//
wx.navigataBack();//返回上一頁
2.將要傳遞的資料,儲存在小程式本地資料快取(Storage)中。
wx.setStorage({
key:"mydata",
data:{a:1,b:2},
success:function(){
wx.navigataBack();//返回上一頁
}
})
注:全域性資料儲存,必須謹慎管理,生命週期等問題
二、從頁面路由棧中直接獲取和操作目標Page物件
這種方式,是透過呼叫小程式的API getCurrentPages(),來獲取當前頁面路由棧資訊,這個路由棧是按照頁面路由順序存放著相應的Page物件,可以很容易獲得上一頁的Page物件,從而使直接呼叫Page物件的屬性和方法成為可能。
var pages=getCurrentPages();
var currPage=pages[pages.length-1];//當前頁面
var prevPage=pages[pages.length-2];//上一個頁面
//現在就可以,直接呼叫上一個頁面的setData()方法,把資料存到上一個頁面中去
prevPage.setData({
mydata:{a:1,b:2}
})