自定义组件 attached 部分情况不触发
发布于 5 年前 作者 leihu 1271 次浏览 来自 问答
  • 当前 Bug 的表现(可附上截图)
  1. 组件 component1 属性列表有一个 show 类型为 Boolean,默认值为 true

properties: {
   show: {
     type: Boolean,
     value: true
   }
 },
<!--component1.wxml-->
<view>component1.wxml</view>
<component2 wx:if="{{show}}"/>
  1. 页面 index 引用 component1,并传入 show 为 false
<view class="intro">
  <component1 show="{{false}}"/>
</view>

3.此时, 组件 component2 的 created,ready 会触发,attached 不会触发

  • 预期表现

组件 component1 的 show 默认值是 true,外部传入为 false 时

最佳表现,应该是 component2 不会被创建,即所有生命周期都不触发

即使因为底层实现,默认值为 true 导致 created,ready 触发,也应该补上 attached,后续因为传入 false 时,再补上 detached 事件

  • 提供一个最简复现 Demo
  • 复现路径

https://developers.weixin.qq.com/s/L1PSWnm67y8Y

回到顶部