从page-container跳转下一页面,再返回,page-container页返回按钮无效?

问题描述:从首页跳转详情页,在详情页打开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>

HBuilderX是一款基于WebIDE的前端开发工具,它主要用于快速构建HTML5应用、Web App以及响应式网站。如果你想要通过HBuilderX内的按钮跳转到轮播图页面,你可以按照以下步骤操作: 1. 首先,创建一个新的HTML文件,用于展示轮播图。可以使用现成的轮播库,如Swiper、Slick等。 ```html <!DOCTYPE html> <html lang="zh"> <head> <meta charset="UTF-8"> <title>轮播图示例</title> <!-- 引入轮播库 CSS 和 JS --> <link rel="stylesheet" href="swiper.min.css"> <script src="swiper.min.js"></script> </head> <body> <div class="swiper-container"> <!-- 轮播图片区域 --> <div class="swiper-wrapper"> <div class="swiper-slide">Slide 1</div> <div class="swiper-slide">Slide 2</div> <div class="swiper-slide">Slide 3</div> </div> <!-- 控制按钮和指示器 --> <div class="swiper-button-prev"></div> <div class="swiper-button-next"></div> <div class="swiper-pagination"></div> </div> <script> new Swiper('.swiper-container', { // 轮播设置 autoplay: true, pagination: { el: '.swiper-pagination', }, }); </script> </body> </html> ``` 2. 然后,在HBuilderX的UI设计中,你需要创建一个按钮元素,并关联一个JavaScript事件处理器。这个处理器应该使用`window.location.href`改变当前页面URL,指向包含轮播图的HTML文件路径。 ```javascript <button id="myButton">点击跳转到轮播图</button> <script> document.getElementById('myButton').addEventListener('click', function() { window.location.href = 'path_to_your_slider_page.html'; }); </script> ``` 将路径替换为你实际保存轮播图页面的路径。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值