微信小程序如何更改上一页面的data(原生/uniapp)

389 阅读1分钟

微信小程序中从一个页面A进入一个页面B,如果页面B的数据有改变,再返回页面A的时候需要更改页面A的数据。

可以使用页面栈getCurrentPages() 函数去实现,他的返回以数组形式按栈的顺序给出,第一个元素为首页,最后一个元素为当前页面。

原生

// 当前为B页面
// isGetList 为A页面数据
const pages = getCurrentPages();
const prevPage = pages[pages.length - 2]; // A页面
prevPage.setData({
  isGetList: true
})
wx.navigateBack();

uniapp

const pages = getCurrentPages();
const prevPage = pages[pages.length - 2]; // A页面
prevPage.$vm.isGetList = true
uni.navigateBack();

注意:由A页面进入B页面需要用navigateTo,如果用redirectTo跳转方式会关闭A页面,导致B页面无法获取A页面的数据。