wx.navigateBack()返回上一页面如何传参数?

wx.navigateBack()不能像其他导航一样通过url传参,因此只能使用其他方法:

先说两个可以实现但弊端很大的方法:

1、将数据存到app.globalData中,然后返回上一页面从全局数据中获取

        弊端:数据为全局数据,必须谨慎维护,否则全局某处做出修改,牵一发而动全身

2、将数据存到本地缓存中(localStorage),然后从缓存中获取  

        弊端:本地缓存空间大小存在限制,若空间不足会自动清除其中最久未使用的数据,同样可能会造成意想不到的影响

so?还有一个比较完美的方法,就是:

使用getCurrentPages()函数获取页面栈的实例,以数组形式按栈的顺序给出,第一个元素为首页,最后一个元素为当前页面。

官方文档参考:https://developers.weixin.qq.com/miniprogram/dev/framework/app-service/route.html?search-key=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 

你可能感兴趣的:(微信小程序)