鸿蒙 OS-06 ArkTs TypeScript 函数

153 阅读1分钟

函数类型变量声明: onTaskChange: () => void

函数传递:bind(this) 解决 对象丢失的问题。

onTaskChange: this.handleTaskChange.bind(this) 。 bind(this) 因为要使用父组件中的属性值。所以 bind this。 指绑定父组件 对象。

父组件

// 任务数组
@State tasks: Task[] = []

handleTaskChange(){
  // 1.更新任务总数量
  this.stat.totalTask = this.tasks.length
  // 2.更新已完成任务数量
  this.stat.finishTask = this.tasks.filter(item => item.finished).length
}
//传递
TaskItem({item: item, onTaskChange: this.handleTaskChange.bind(this)})


子组件
@Component
struct TaskItem {
  @ObjectLink item: Task
  onTaskChange: () => void
  
  build(){
  使用:```
  // 2.更新已完成任务数量
  this.onTaskChange()
 }
}