HarmonyOS 自定义控件,如何通过controller的形式控制控件渲染

HarmonyOS
2024-12-26 14:56:40
892浏览
收藏 0
回答 1
回答 1
按赞同
/
按时间
Heiang

可以在初始化组件时,传递一个方法给自定义组件,在自定义组件中触发该方法,组件中变量作为方法的参数。这样就可以实现将控制器功能嵌入到自定义组件内部的效果。

//Index
import { CustomWidget } from './CustomWidget';
import { CustomController } from './CustomController';
@Entry
@Component
struct Index {
  controller: CustomController = new CustomController();
  build() {
    Column() {
      CustomWidget({ controller: this.controller }).width("100%").height("100%").onClick(() => {
        this.controller.numberAdd();
      })
    }.width("100%").height("100%")
  }
}
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
//CustomWidget
import { CustomController } from './CustomController';
@Component
export struct CustomWidget {
  controller: CustomController = new CustomController();
  @State index: number = 0
  numberAdd = () => {
    this.index++;
  };
  aboutToAppear(): void {
    this.controller.numberAdd = this.numberAdd;
  }
  build() {
    Column() {
      Text("current number is" + this.index.toString())
    }
  }
}
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
//CustomController
export class CustomController {
  numberAdd = () => {
  }
}
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
分享
微博
QQ
微信
回复
2024-12-26 16:43:30


相关问题
HarmonyOS 自定义时间控件和日期控件
1264浏览 • 1回复 待解决
HarmonyOS 自定义控件实现
1014浏览 • 1回复 待解决
HarmonyOS如何自定义组件Controller
1270浏览 • 1回复 待解决
HarmonyOS Progress UI控件进度控制
1104浏览 • 2回复 待解决
HarmonyOS如何动态控制控件属性?
618浏览 • 0回复 待解决
访问控制系统控件有哪些
1257浏览 • 1回复 待解决