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

HarmonyOS
1天前
浏览
收藏 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%")
  }
}
//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())
    }
  }
}
//CustomController
export class CustomController {
  numberAdd = () => {
  }
}
分享
微博
QQ
微信
回复
1天前
相关问题
HarmonyOS 自定义时间控件和日期控件
365浏览 • 1回复 待解决
HarmonyOS 自定义控件实现
39浏览 • 1回复 待解决
HarmonyOS如何自定义组件Controller
397浏览 • 1回复 待解决
HarmonyOS Progress UI控件进度控制
480浏览 • 2回复 待解决
访问控制系统控件有哪些
432浏览 • 1回复 待解决
HarmonyOS如何动态控制控件属性?
185浏览 • 0回复 待解决
HarmonyOS 自定义弹窗控制问题
45浏览 • 1回复 待解决