- 分析:一般调用
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 } } }
-