HarmonyOS 鸿蒙Next:父控件如何调用子控件的方法或属性,以及子控件如何将方法或属性回调给父控件

发布于 1周前 作者 wuwangju 来自 鸿蒙OS

HarmonyOS 鸿蒙Next:父控件如何调用子控件的方法或属性,以及子控件如何将方法或属性回调给父控件 父控件怎么才能使用到子控件的方法或属性,或者将子控件将一些方法或属性怎么回调给父控件

3 回复

声明式UI就是这么垃圾.

传统的编程写UI才是最快, 最高性能, 最灵活且最松耦合紧内聚的. [ios, 安卓, QT这类, 不使用任何类xml模板]

更多关于HarmonyOS 鸿蒙Next:父控件如何调用子控件的方法或属性,以及子控件如何将方法或属性回调给父控件的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


父组件调用子组件方法,请参考如下demo

@Component 
struct Child { 
  @State private text: string = '初始值' 
  private controller: ChildController = new ChildController(); 
 
  aboutToAppear() { 
    if (this.controller) { 
      this.controller.changeText = this.changeText 
    } 
    console.log('aaa'
    ) 
  } 
 
  private changeText = (value: string) => { 
    this.text = value 
    console.log('bbb' 
    ) 
  } 
 
  build() { 
    Column() { 
      Text(this.text) 
    } 
  } 
} 
 
class ChildController { 
  changeText = (value: string) => { 
    console.log('11111' 
    ) 
  } 
} 
 
export let ChildRef = new ChildController() 
 
@Entry 
@Component 
struct Parent { 
  @State noShow: boolean = false 
  build() { 
    Column() { 
      Text('获取Child的exposeMethods!'
      ) 
        .fontSize('18vp' 
        ) 
        .fontColor(Color.Gray) 
      Divider() 
      Child({ controller: ChildRef }) 
      Child() 
      Button('Parent调用childer的changeText') 
        .onClick(() => { 
          ChildRef.changeText('Parent调用childer的changeText'
          ) 
        }) 
    } 
  } 
}

在HarmonyOS鸿蒙系统中,父控件调用子控件的方法或属性,以及子控件将方法或属性回调给父控件,通常通过以下方式实现:

  1. 父控件调用子控件的方法或属性: 在鸿蒙的组件化开发中,你可以通过组件树的层级关系来访问子控件。通常,你可以在父控件的布局文件中给子控件定义一个ID,然后在父控件的代码中通过该ID获取子控件的实例,进而调用其方法或访问其属性。

  2. 子控件回调方法或属性给父控件: 子控件可以通过事件回调机制将方法或属性信息传递给父控件。例如,子控件可以定义一个事件,当某个条件满足时触发该事件,并通过事件参数将需要传递的方法或属性信息传递给父控件的事件处理函数。

在鸿蒙的XTS(Extension TypeScript)或ETS(Extension TypeScript for Simple)语言中,你可以利用组件的生命周期、事件监听和回调机制来实现这些功能。

如果问题依旧没法解决请联系官网客服,官网地址是 https://www.itying.com/category-93-b0.html

回到顶部