按照一个组件最基本的功能,既能接收外部传入的数据,也要向外部传递数据。那么 @Event 修饰符就是来解决这个问题的了。
介绍
@Event 是 子组件向父组件传递数据的技术,它只能用在 @ComponentV2 修改的组件上,其中的思想是
- 完成修改数据的操作,还是放在父组件内部,通过定义一个函数 func 来实现
- 在父组件调用子组件的时候,也顺带把这个函数 func 传递给子组件
- 子组件在内部 使用 @Event 来修饰 该函数,并且在需要的使用直接调用即可
父组件
- 定义内部数据 num
- 定义修改内部数据num的函数 func
- 使用子组件时,把num和func都传递过去
@Entry
@ComponentV2
struct Index {
@Local num: number = 100
// 自己定义的函数 负责修改数据, 该函数也要传递给子组件
func = (unit: number) => {
this.num -= unit
}
build() {
Column() {
Button("父组件 修改" + this.num)
.onClick(() => {
this.num++
})
// 使用子组件,并且传递数据 和 传递函数
Son({ num: this.num, func: this.func })
.padding(10)
}
.width("100%")
}
}
子组件
- 使用 @Param 接收父组件传递的 num
- 使用@Event 接收父组件传递的函数 func
- 定义点击事件的处理函数 onfunc,内部直接调用父组件传递过来的函数
@ComponentV2

最低0.47元/天 解锁文章
1126

被折叠的 条评论
为什么被折叠?



