小程序页面数据回传

小程序页面回传两种方法。

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}
})
原文地址:https://www.cnblogs.com/Juaoie/p/10231997.html