中国优质的IT技术网站
专业IT技术创作平台
IT职业在线教育平台
有条件筛选项在子组件中,清空按钮在父组件中,点击清空按钮,需要触发子组件里的清空方法去清空数据及状态
微信扫码分享
可以定义一个controller类,在controller类中定义和子组件中类型相同的方法,在子组件中将实际封装的方法给到controller。父组件在使用时,new一个controller对象然后转入子类中,在父组件中调用controller对应的方法即可。参考代码:
@Component struct Child { @State private text: string = '初始值' private controller: ChildController = new ChildController(); aboutToAppear() { if(this.controller) { //给controller对应的方法赋值 this.controller.changeText = this.changeText } } //封装的能力 private changeText = (value: string) =>{ this.text = value } build() { Column() { Text(this.text) } } } //定义controller对象 class ChildController { changeText = (value: string) => {} } @Entry @Component struct Parent { private ChildRef = new ChildController() build() { Column() { Text('调用Child的changeText').fontSize('18vp').fontColor(Color.Gray) Divider() Child({ controller:this. ChildRef }) Button('Parent调用childer的changeText').onClick(() => { this.ChildRef.changeText('Parent调用childer的changeText') }) } .justifyContent(FlexAlign.Center) .width("100%") .height("100%") } }
可以定义一个controller类,在controller类中定义和子组件中类型相同的方法,在子组件中将实际封装的方法给到controller。父组件在使用时,new一个controller对象然后转入子类中,在父组件中调用controller对应的方法即可。参考代码: