在修改二级页面后直接返回一级页面,并且二级页面的数据跟一级页面有一定的关联性,这个时候返回就应该改变一级页面的数据,要想实现这个功能,有以下几个思路
一、在二级页面修改成功后,把修改的内容保存到缓存或者全局变量里,在一级页面里的show方法里接收这个保存的数据,并修改相应的数据,在卸载这个页面的方法里手动去除缓存或把全局变量里的值置为null
二级页面保存数据
//保存到全局变量中
var app = getApp()
app.globalData.testdata = {a:1};
//保存到数据缓存中
wx.setStorageSync('b', '2');
返回一级页面后获取数据
//获取保存在全局里的变量
let a=app.globalData.testdata.a;
//获取保存在缓存里的数据
let b=wx.getStorageInfoSync('b')
然后修改数据就行了
二、在路由栈里获取当前路由和前一个路由,调用前一个路由的setdata方法,直接修改前一个页面的数据
var pages = getCurrentPages();
var currPage = pages[pages.length - 1]; //当前页面
var prevPage = pages[pages.length - 2]; //上一个页面
//直接调用上一个页面的setData()方法,把数据存到上一个页面中去
prevPage.setData({
data: {a:1, b:2}
})