HarmonyOS @BuilderParam结合自定义组件时的使用问题
基于@BuilderParam的Container是有尾随闭包的形式插桩子内容时,当字内容为自定义组件时候,在Container的onDidBuild事件中获取不到frameNode,当给自定义控件设置id属性后能获取到自定义控件,但是setOnVisibleAreaApproximateChange不进行触发。预期效果Container1下需兼容系统组件以及自定义组件在Container1内动态绑定setOnVisibleAreaApproximateChange方法。
以下为示例:
import { FrameNode } from '@kit.ArkUI'
@Entry
@Component
struct TestPage {
build() {
Column() {
// 获取不到 frameNode
Container1({ idx: '1' }) {
Component1()
}
// 正常
Container1({ idx: '2' }) {
Text('Hello')
}
// 正常
Container1({ idx: '3' }) {
Column() {
Component1()
}
}
// 能获取到 frameNode 类型为 __Common__ 但是 setOnVisibleAreaApproximateChange 无效。
Container1({ idx: '4' }) {
Component1().id('')
}
}
}
}
@Component
struct Component1 {
build() {
Text('Hello')
}
}
@Component
export struct Container1 {
@Prop idx: string;
@Builder
closerBuilder() {
}
@BuilderParam closer: () => void = this.closerBuilder
build() {
this.closer();
}
onDidBuild(): void {
let uniqueId = this.getUniqueId();
let frameNode: FrameNode | null = this.getUIContext().getFrameNodeByUniqueId(uniqueId);
console.log(this.idx + ' ' + frameNode?.getNodeType())
if (frameNode != null) {
frameNode.commonEvent.setOnVisibleAreaApproximateChange({
ratios: [0, 1],
expectedUpdateInterval: 1000
},
(isVisible: boolean, currentRatio: number) => {
console.log(this.idx + ' ' + isVisible + ' ' + currentRatio)
})
}
}
}
HarmonyOS
赞
收藏 0
回答 1
待解决
相关问题
HarmonyOS @BuilderParam实现组件插槽时的this指向问题
169浏览 • 1回复 待解决
HarmonyOS 自定义组件的使用
36浏览 • 1回复 待解决
HarmonyOS 自定义组件问题
636浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何使用XComponent结合Vsync实现自定义动画?
185浏览 • 1回复 待解决
自定义组件onMeasureSize的使用
560浏览 • 1回复 待解决
HarmonyOS 自定义组件中的constructor()方法在使用组件时没有调用
552浏览 • 1回复 待解决
自定义装饰器的使用问题
931浏览 • 1回复 待解决
js 开发中 自定义组件在使用if属性时遇到的问题,有懂的吗?
4226浏览 • 1回复 待解决
自定义弹窗使用相关问题
1140浏览 • 1回复 待解决
HarmonyOS 自定义弹框组件问题
646浏览 • 1回复 待解决
HarmonyOS 自定义组件CustomBuilder显示问题
630浏览 • 1回复 待解决
HarmonyOS @BuilderParam使用问题
93浏览 • 1回复 待解决
HarmonyOS 自定义了一个组件,如何自定义事件?使其能在父组件使用其自定义事件
184浏览 • 1回复 待解决
HarmonyOS 定义自定义组件
211浏览 • 1回复 待解决
HarmonyOS 关于使用@BuilderParam的问题
727浏览 • 1回复 待解决
HarmonyOS 自定义弹框关闭时的动画显示问题
581浏览 • 1回复 待解决
HarmonyOS 自定义组件时怎样把组件当作参数传递?
693浏览 • 1回复 待解决
HarmonyOS WebView使用自定义键盘问题
283浏览 • 1回复 待解决
HarmonyOS badge 子组件是自定义组件时不生效
359浏览 • 1回复 待解决
HarmonyOS 自定义弹窗的问题
908浏览 • 1回复 待解决
HarmonyOS 自定义组件:@Component 的生命周期问题
224浏览 • 1回复 待解决
HarmonyOS 使用混合开发,自定义的ArkTS组件,CAPI侧如何监听自定义组件的事件回调?
208浏览 • 1回复 待解决
HarmonyOS 自定义弹窗、自定义键盘自动关闭问题
262浏览 • 1回复 待解决
HarmonyOS 自定义弹和Navigation配合使用的问题
104浏览 • 1回复 待解决
在自定义组件Container1里加一个column组件,参考示例: