HarmonyOS鸿蒙Next中点击事件参数类型

HarmonyOS鸿蒙Next中点击事件参数类型 我写了一个Text并实现了点击事件

@Component struct ClassifyItem { onClickAction = (event:ClickEvent):void => {}

build() { Text(‘Hello World’) .onClick(this.onClickAction) } }


查看了源码可知`onClick()` 是有一个参数:`event:(event:ClickEvent)=>void`

但是我在编写代码时候将`onClickAction`写成没有参数,竟然也可以编译通过,运行成功,有点搞不懂这里的原理。


[@Component](/user/Component)
struct ClassifyItem {
  onClickAction = ():void => {}
  
  build() {
    Text('Hello World')
      .onClick(this.onClickAction)
  }
}

更多关于HarmonyOS鸿蒙Next中点击事件参数类型的实战教程也可以访问 https://www.itying.com/category-93-b0.html

3 回复

这应该是文档的问题,你这种写法有点类似onclick方法的有参和无参写法,文档感觉是错误的,ClickEvent是可以为空的

@Component
@Entry
export struct Test {
  @State text: string = ''

  build() {
    Column() {
      Button().onClick(() => {
        console.log("aaaa")
      })

      Button('Click').width(100).height(40)
        .onClick((event?: ClickEvent) => {
          if (event) {
            this.text = 'Click Point:' + '\n  windowX:' + event.windowX + '\n  windowY:' + event.windowY
              + '\n  x:' + event.x + '\n  y:' + event.y + 'target:' + '\n  component globalPos:('
              + event.target.area.globalPosition.x + ',' + event.target.area.globalPosition.y + ')\n  width:'
              + event.target.area.width + '\n  height:' + event.target.area.height + '\ntimestamp' + event.timestamp;
          }
        }, 20)
    }
  }
}

更多关于HarmonyOS鸿蒙Next中点击事件参数类型的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在HarmonyOS鸿蒙Next中,点击事件参数类型主要涉及ClickEventGestureEventClickEvent用于处理简单的点击操作,事件参数包含触发事件的坐标信息。GestureEvent用于处理更复杂的手势操作,如长按、滑动等,事件参数包含手势类型、坐标、速度等信息。开发者可以通过监听这些事件来实现交互逻辑。

在HarmonyOS鸿蒙Next中,点击事件的参数类型通常为ClickEventClickEventComponent组件中处理点击事件的回调参数,包含了点击事件的相关信息。开发者可以通过onClick方法监听点击事件,并在回调中处理逻辑。例如:

Button.onClick((event: ClickEvent) => {
  console.log("Button clicked!");
});

ClickEvent对象通常包含点击的坐标、时间戳等信息,帮助开发者进行更精细的事件处理。

回到顶部