小程序页面回传两种方法。
1、使用全局数据储存
一种是把数据储存在App对象上
//=== 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(); //返回上一个页面 } })
但是这样的缺点显而易见,不仅占内存,而且还容易出错,书写还麻烦,有些功能很不好实现。
2、从页面路由栈中直接获取和操作目标Page对象
使用getCurrentPages()用来获取页面路由栈信息,这个路由栈信息中用数组储存着相应page对象,这个方法调用就很容易了。
var pages = getCurrentPages(); var currPage = pages[pages.length - 1]; //当前页面 var prevPage = pages[pages.length - 2]; //上一个页面 //直接调用上一个页面的setData()方法,把数据存到上一个页面中去 prevPage.setData({ mydata: {a:1, b:2} })