HarmonyOS 鸿蒙Next ArkUI封装自定义组件时如何避免穷举系统组件的事件属性

HarmonyOS 鸿蒙Next ArkUI封装自定义组件时如何避免穷举系统组件的事件属性

我在最佳实践中看到封装组件时AttributeModifier可以避免穷举系统组件的属性方法,但是文档提到AttributeModifier不支持入参为CustomBuilder或Lamda表达式的属性,且不支持事件和手势。那么对于事件属性来说如何处理呢?

比如我现在在封装Web组件,系统Web组件有onPageStart、onPageEnd等事件属性,那么自定义Web组件应该如何开放这些事件属性方法呢(不希望在自定义Web组件穷举系统Web组件的事件属性)?


更多关于HarmonyOS 鸿蒙Next ArkUI封装自定义组件时如何避免穷举系统组件的事件属性的实战教程也可以访问 https://www.itying.com/category-93-b0.html

2 回复
你说的onPageStart、onPageEnd等事件属性,这些是组件的生命周期,无法开放,是绑在web组件上的生命周期,
不支持入参为CustomBuilder或Lamda表达式的属性,且不支持手势,事件仅支持onClick、onTouch、onAppear、onDisAppear、onMouse、onHover、onKeyEvent、onBlur、onFocus、onAreaChange、onSizeChange、onGestureJudgeBegin。不支持已废弃属性,未支持的属性在使用时会抛异常"Method not implemented"。

参考文档:‘https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/ts-universal-attributes-attribute-modifier-V5

更多关于HarmonyOS 鸿蒙Next ArkUI封装自定义组件时如何避免穷举系统组件的事件属性的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在HarmonyOS鸿蒙Next ArkUI封装自定义组件时,为避免穷举系统组件的事件属性,可以采用AttributeModifier属性方法

AttributeModifier方法允许将组件属性设置分离到系统提供的AttributeModifier接口实现类实例中,通过自定义Class类实现AttributeModifier接口,可以对系统组件属性进行扩展。这种方式将属性从组件中解耦出来,由外部使用者按需设置,从而避免了在自定义组件中穷举系统组件的所有事件属性。

具体来说,可以在自定义组件中定义对应的Modifier属性,接收外部传入的AttributeModifier类实例。然后,自定义实现类来实现AttributeModifier接口,在实现类中定义set方法,以支持链式调用方式设置属性。这样,使用者就可以根据需要动态地设置组件的属性,而无需在自定义组件中预先定义所有可能的属性。

如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html

回到顶部