没有用@Entry修饰的自定义组件,没有每次显示隐藏时触发的生命周期可用,可通过以下demo实现:@Component struct CComponent { //交给父组件控制 @Link flage: Visibility build() { Column() { Text('自定义组件') .fontSize(20) .width('90%') .fontColor(0xCCCCCC) } .width('100%') .margin({ top: 50 }) .height('100%') .visibility(this.flage) } } //父组件 @Entry @Component struct VisibilityExample { @State @Watch("onVisibleChange") flage: Visibility = Visibility.Visible onVisibleChange() { console.log("flage: ", this.flage) } build() { Column() { Column() { Button("Hidden") .onClick(() => { this.flage = Visibility.Hidden }) Button("Visible") .onClick(() => { this.flage = Visibility.Visible }) Button("None") .onClick(() => { this.flage = Visibility.None }) CComponent({ flage: this.flage }) }.width('90%'). border({ width: 1 }) } .width('100%') .margin({ top: 5 }) } }
没有用@Entry修饰的自定义组件,没有每次显示隐藏时触发的生命周期可用,可通过以下demo实现: