问题描述:从首页跳转详情页,在详情页打开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的show
    show: {
      type: Boolean,
      value: false
    }
  },

  data: {
    pageShow: true // 页面显示状态
  },
  
  pageLifetimes: {
    show() {
      this.setData({
        pageShow: true
      })
    },

    hide() {
      this.setData({
        pageShow: false
      })
    }
  }
})

使用

<popup show="{{popupShow}}">
  ...
</popup>

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐