收藏
回答

自定义组件中attached和page中的show生命周期不一样吗?

想要实现当某个页面隐藏(hide)/显示(show)时,该页面中的自定义组件也进行相应的隐藏或者显示。在自定义组件中使用attached的时候,当点击返回按钮时,自定义组件中的attached生命周期不触发,但是通过tabBar点击别的页面再回来,又能触发了,这是为什么?attached既不像page中的show也不像onLoad。。。。

回答关注问题邀请回答
收藏

3 个回答

  • LastLeaf
    LastLeaf
    2017-12-27

    组件没有onShow这样的生命周期的哦,可能要页面通知一下。

    2017-12-27
    有用
    回复 10
    • 小猪快跑
      小猪快跑
      2019-09-11
      detached能主动执行吗?比如页面执行某个操作后,在组件的observers里执行detached
      2019-09-11
      回复
    • LastLeaf
      LastLeaf
      2019-09-16回复小猪快跑
      在不移除组件的前提下主动执行吗?只是执行 Component 的 detached 还是要连同所有 Behavior 的 detached 一起?
      2019-09-16
      回复
    • 小猪快跑
      小猪快跑
      2019-09-17
      是的,移除组件就自动执行detached了啊,类似于page的unload事件在执行navigateto的时候就会执行,而navigateto是由用户主动操作控制的,也就说用户可以间接地控制page的unload事件。
      2019-09-17
      回复
    • LastLeaf
      LastLeaf
      2019-09-20回复小猪快跑
      对,在页面销毁前会跑一次 detached 。不过 navigateTo 会另开个新页面而不会销毁当前的,navigateBack 会销毁当前的。我现在想知道的是你具体需要的是什么。
      2019-09-20
      回复
    • 小猪快跑
      小猪快跑
      2019-09-21
      呃,抱歉,没表达清楚。就是想问组件中this.detached()这个不能用,有没有办法主动执行这个函数。
      2019-09-21
      回复
    查看更多(5)
  • LastLeaf
    LastLeaf
    2017-12-27

    不一样的。attached 会在 onLoad 之前触发,大意是组件节点树被“附着”到页面的时候,具体表现和 onLoad 会比较类似。


    但是通过tabBar点击别的页面再回来,又能触发了


    可以仔细描述下这个问题吗?

    2017-12-27
    有用
    回复
  • 京京
    京京
    2017-12-27

    tabBar那个是我搞错了...  那如果想在某个组件里随时监听播放状态的话,应该放到组件的哪个生命周期函数中呢?

    2017-12-27
    有用
    回复
登录 后发表内容