分析:一般调用navigateBack返回上一页时有两种情况
不需刷新:查看内容,状态未改变.
需刷新:在第二页编辑后,上一页列表中与之对应的数据状态一起改变
目前想出的方案是在回退之前修改上页判断条件,回退后重新获取判断条件在决定是否刷新。
示例:
详情页
修改状态成功后,准备回退到上一页之前,将上一页的是否刷新参数值改为是的状态
let pages = getCurrentPages();
let prevPage = pages[pages.length - 2];//上一个页面
//直接调用上一个页面的setData()方法,把数据存到上一个页面中去
prevPage.setData({
isRefresh: 1
})
// 再根据需求,确定返回上一页面
wx.navigateBack({
delta: 1
})
列表页
需要在onshow钩子中获取判断条件
export default{
data(){
return{
isRefresh:false
}
},
onShow(){
// 如果是提交状态返回isRefresh=1,才刷新页面,从详情过来无需刷新
let pages = getCurrentPages();
let currPage = pages[pages.length - 1];
if(currPage.__data__.isRefresh){
// 重新获取数据
this.getData(true)//获取列表数据
// 每一次需要清除,否则会参数会缓存
currPage.__data__.isRefresh=false
}
}
}