函数类型变量声明: 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()
}
}