前言
前面我们玩到了@ Builder 装饰器我们知道他是一个自界说构建函数,可以将重复使用的UI元素抽象成一个方法,在build方法里调用,那么本期我们要玩玩的是BuilderParam 顾名思义: builder 的参数,用作是啥? 这玩意有点贫困说真话欠好用......
用于自界说构建函数的时间在内里添加了一个自界说组件假如你须要实现点击跳转功能按早从前我们都是直接修改这个函数内里的组件那么导致全部引用这个函数的组件都会有点击跳转功能,为办理此题目,ArkUI引入了@BuilderParam装饰器,@BuilderParam用来装饰指向@Builder方法的变量,我们就可以在初始化自界说组件时对此属性举行赋值,为自界说组件增长特定的功能。
该装饰器用于声明恣意UI形貌的一个元素,类似slot占位符。
使用
⚠️: @BuilderParam装饰的方法只能被自界说构建函数@Builder装饰来初始化
使用所属自界说组件的自界说构建函数大概全局的自界说构建函数,在当地初始化@BuilderParam,啥意思?利用看看
语法:
所属的自界说组件内里的函数
官方给到的一个语法
这里 void 反面跟着类似赋值利用 官方没有给出公道的表明, 我们继续跟着案例来
- @Builder function GlobalBuilder0() {}
-
- @Component
- struct Child {
- @Builder doNothingBuilder() {};
- // 这里 void 后面跟着类似赋值操作 官方没有给出合理的解释
- @BuilderParam aBuilder0: () => void = this.doNothingBuilder;
- @BuilderParam aBuilder1: () => void = GlobalBuilder0;
- build(){}
- }
复制代码 用父组件自界说构建函数初始化子组件@BuilderParam装饰的方法
使用子组件的 BuildeParam 转达参数的时间不能转达字符串、数值等范例只能转达 Builder 修饰的函数
- // 乖儿
- @Component
- struct Son {
- @BuilderParam bp0: () => void;
-
- build() {
- Column() {
- // 直接调用使用
- this.bp0()
- }
- }
- }
-
- // 父亲组件
- @Entry
- @Component
- struct Father {
- @Builder componentBuilder() {
- Text(`我这里是父类里面的组件`)
- }
-
- build() {
- Column() {
- Son({bp0: this.componentBuilder})
- }
- }
- }
复制代码 结果展示
this指向
这个时间固然是可以用到父
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!qidao123.com:ToB企服之家,中国第一个企服评测及软件市场,开放入驻,技术点评得现金 |