小程序页面跳转传数据
2021-03-16 本文已影响0人
一枚小菜
1.API跳转页面时携带参数,在目标页面通过options.获取数据复制给本地变量
url: '/pages/test/test?nameData=' + that.data.name + '&ageData=' + that.data.age
`${ }` (模版字符串)
url: `/pages/test/test?nameData=${that.data.name} + '&ageData='${that.data.age}`
2.全局数据存储
将要传递的数据,存储在App对象上(比如globalData属性)。
将要传递的数据,存储在小程序的本地数据缓存(Storage)中。
//=== 1. 存储到app对象上的方式 ========
var app = getApp()
app.globalData.mydata = {a:1, b:2}; //存储数据到app对象上
wx.navigateBack(); //返回上一个页面
//=== 2.存储到数据缓存的方式 =========
wx.setStorage({
key: "mydata",
data: {a:1, b:2},
success: function () {
wx.navigateBack(); //返回上一个页面
}
})
3.从页面路由栈中直接获取和操作目标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}
})