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指向问题
969浏览 • 1回复 待解决
HarmonyOS 自定义组件问题
1677浏览 • 1回复 待解决
HarmonyOS 自定义组件的使用
1173浏览 • 1回复 待解决
自定义组件onMeasureSize的使用
1629浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何使用XComponent结合Vsync实现自定义动画?
981浏览 • 1回复 待解决
HarmonyOS 自定义组件中的constructor()方法在使用组件时没有调用
1493浏览 • 1回复 待解决
HarmonyOS 自定义弹框组件问题
1552浏览 • 1回复 待解决
HarmonyOS 自定义组件CustomBuilder显示问题
1429浏览 • 1回复 待解决
HarmonyOS @BuilderParam使用问题
699浏览 • 1回复 待解决
自定义装饰器的使用问题
1785浏览 • 2回复 待解决
js 开发中 自定义组件在使用if属性时遇到的问题,有懂的吗?
5034浏览 • 1回复 待解决
HarmonyOS 关于使用@BuilderParam的问题
1685浏览 • 1回复 待解决
自定义弹窗使用相关问题
2003浏览 • 1回复 待解决
HarmonyOS 自定义弹框关闭时的动画显示问题
1436浏览 • 1回复 待解决
HarmonyOS badge 子组件是自定义组件时不生效
1299浏览 • 1回复 待解决
HarmonyOS WebView使用自定义键盘问题
1160浏览 • 1回复 待解决
HarmonyOS 自定义了一个组件,如何自定义事件?使其能在父组件使用其自定义事件
1115浏览 • 1回复 待解决
HarmonyOS 定义自定义组件
1394浏览 • 1回复 待解决
HarmonyOS 自定义弹和Navigation配合使用的问题
699浏览 • 1回复 待解决
HarmonyOS 自定义组件的自定义布局 数据的作用域不对
1332浏览 • 1回复 待解决
HarmonyOS 自定义UI组件如何自定义属性方法
2010浏览 • 1回复 待解决
HarmonyOS 当自定义组件使用大括号传递插槽时无法传递样式
995浏览 • 1回复 待解决
使用自定义构建函数Buider和自定义组件component的区别是什么
1916浏览 • 1回复 待解决
HarmonyOS 自定义组件时怎样把组件当作参数传递?
1546浏览 • 1回复 待解决
在自定义组件Container1里加一个column组件,参考示例: