HarmonyOS 自定义组件的私有属性,外部通过构造函数初始化,还能实例化

定义了一个自定义组件, 并且导出,需要作为公共组件。

@Component  
export struct NavigationBar {  
  @State title: string = ""  
  @State leftImage: Resource | null = null  
  @State rightImage: Resource | null = null  
  private rightItemCallBack?: () => void  
  constructor(title: string) {  
    super()  
    this.title = title  
  }  
}
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.

该模块的Index.ets中导出export { NavigationBar } from './src/main/ets/components/NavigationBar'

在entry引用模块,调用NavigationBar 在构造函数的时候还能为rightItemCallBack赋值,而这个属性已经被private修饰了,不想它在构造函数中赋值,那该怎么办呢?

HarmonyOS
2024-09-30 10:58:32
浏览
收藏 0
回答 1
回答 1
按赞同
/
按时间
zbw_apple

可以增加set函数就行,可以参考下面demo:

@Component  
export struct NavigationBar {  
  @State title: string = ""  
  @State leftImage: Resource | null = null  
  @State rightImage: Resource | null = null  
  private rightItemCallBack?: () => void  
  constructor(title: string) {  
    super()  
    this.title = title  
  }  
  set(ccc : () => void){  
    this.rightItemCallBack = ccc  
  }  
  build() {  
  }  
}
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.

使用时:

import { NavigationBar } from '../Test/conTest';  
@Entry  
@Component  
struct WebComponent {  
  build() {  
    Column() {  
NavigationBar({title:"wwwww",rightItemCallBack : () =>{  
      }})  
    }  
  }  
}
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
分享
微博
QQ
微信
回复
2024-09-30 16:44:02
相关问题
HarmonyOS 自定义弹窗初始化问题
752浏览 • 1回复 待解决
HarmonyOS 组件初始化参数
713浏览 • 1回复 待解决
HarmonyOS泛型类属性如何初始化
1323浏览 • 1回复 待解决
HarmonyOS XComponent初始化
1115浏览 • 1回复 待解决
HarmonyOS struct初始化方法
971浏览 • 1回复 待解决
HarmonyOS Component初始化问题
1471浏览 • 1回复 待解决
HarmonyOS export struct初始化参数
1016浏览 • 1回复 待解决
初始化安全相机方法
1242浏览 • 1回复 待解决
HarmonyOS 初始化EGL环境失败
892浏览 • 1回复 待解决
HarmonyOS 推送服务初始化失败
815浏览 • 1回复 待解决
HarmonyOS 应用RDB初始化示例
1239浏览 • 1回复 待解决
怎么进行全局初始化操作?
320浏览 • 0回复 待解决
没法调试“已初始化”分支
991浏览 • 1回复 待解决