问题描述:从首页跳转详情页,在详情页打开page-container并跳转编辑页,再从编辑页返回详情页后,详情页的返回按钮失效,无法返回首页。只有再次打开page-container并关闭,返回按钮才有效。
经过多次测试终于找到问题所在,当页面跳转时如果触发了关闭page,show状态值会丢失,所以在返回页面时当前页的返回按钮找不到show状态值,解决的办法有两个,
一:返回页面时在onShow中对page的show重新赋true或false,
二:跳转页面时做50ms延迟,等待page的show值确定
onMyscreen(e) {let data = e.detail;setTimeout(() => {wx.navigateTo({url:"/pages/index/collectionnew/filterpage/filterpage?filter=" +JSON.stringify(data),});}, 500);},
其他方案
可以试一下把page-container封装成一个组件,在封装组件的pageLifetimes里面手动控制show的状态
// JS
Component({properties: {// 相当于原page-container的showshow: {type: Boolean,value: false}},data: {pageShow: true // 页面显示状态},pageLifetimes: {show() {this.setData({pageShow: true})},hide() {this.setData({pageShow: false})}}
})
使用
<popup show="{{popupShow}}">...
</popup>