收藏
回答

小程序的自定义组件如何获取自身所在页面的实例?

框架类型 问题类型 API/组件名称 终端类型 微信版本 基础库版本
小程序 需求 Component 客户端 6.7.2 1.9.98

小程序的组件如何获取自身所在页面的示例?

目的是想把组件的生命周期与page的生命周期关联起来。

虽然 2.2.3 暴露了一部分 lifetimes 但是不够,并且有兼容的问题,时候有其他的优雅的方法?

最后一次编辑于  2018-09-01
回答关注问题邀请回答
收藏

2 个回答

  • lly
    lly
    2021-08-16

    组件实例上有getPageId方法获取所在页面的id,页面实例也有getPageId方法获取当前页面的id。可以使用getCurrentPages方法获取页面栈后,然后遍历页面栈获取pageId,进行pageId匹配。

    2021-08-16
    有用 1
    回复 1
    • 神经蛙
      神经蛙
      2021-08-16
      这么些年了,难为你还翻出来了。。
      2021-08-16
      回复
  • 肥凯
    肥凯
    2019-01-10

    使用getCurrentPages方法可以不?虽然不优雅

    2019-01-10
    有用
    回复 1
    • fisher
      fisher
      2019-04-16

      这种方法肯定不行,它获取的永远是页面栈里面最后一个页面也就是当前打开的页面,跟组件所在的页面没有什么关联。从目前开放的api来看,无法直接获取组件所在的页面对象。 一个较简单的做法是在一个自定义page里面重写页面的生命周期函数,为页面设置pageShown,pageHidden等属性,然后在相应的组件里面定义property并做监听。如果觉得性能不好,那就只在用到的页面和事件中添加。 也可以通过自定义事件来完成两者之间的传值,不过要需要一个唯一标志来区分不同的页面。

      希望小程序日后尽快尽多地开放更多实用功能吧。

      2019-04-16
      回复
登录 后发表内容