微信小程序利用getCurrentPages进行页面传值

小程序的页面间传值 , 之前处理这种例如 a页面跳转b页面,在b页面进行一波操作 回到a页面 都是把b页面的操作的数据存到本地存储。

wx.setStorageSync("b_data","b页面的数据")

在a页面是这样的

wx.getStorageSync("b_data")

但是这种方法怎么说呢 不利于操作 还会导致storage里面的数据非常混乱过一段时间鬼知道是什么,操作也麻烦。

后台研究这个事 发现小程序的官方文档有一个获取当前页面栈。数组中第一个元素为首页,最后一个元素为当前页面。--getCurrentPages()

然后好玩的事来了,你可以在b页面获取a页面的数据,更神奇的是可以直接调用上个页面的setData方法,直接操作上个页面的数据。

let pages = getCurrentPages();  // 获取当前页面栈
let prevPage = pages[pages.length - 2]; // -2 就是你上一页的数据 你上上页的数据就是-3 了以此类推!
// 直接操作上一个页面的 index数据 之后返回 
prevPage.setData({
      index:index
},function(){
      wx.navigateBack()
})

简单明了!好用且强大!

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注