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  
  }  
}

该模块的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() {  
  }  
}

使用时:

import { NavigationBar } from '../Test/conTest';  
@Entry  
@Component  
struct WebComponent {  
  build() {  
    Column() {  
NavigationBar({title:"wwwww",rightItemCallBack : () =>{  
      }})  
    }  
  }  
}
分享
微博
QQ
微信
回复
2024-09-30 16:44:02
相关问题
HarmonyOS泛型类属性如何初始化
367浏览 • 1回复 待解决
HarmonyOS Component初始化问题
288浏览 • 1回复 待解决
HarmonyOS 应用RDB初始化示例
345浏览 • 1回复 待解决
初始化安全相机方法
319浏览 • 1回复 待解决
没法调试“已初始化”分支
89浏览 • 1回复 待解决
是否提供提前初始化webview能力
2219浏览 • 1回复 待解决
在c++中实例自定义类并调用方法
248浏览 • 1回复 待解决
关于初始化EGL环境相关问题
490浏览 • 1回复 待解决
rsa 公钥解密初始化报错
127浏览 • 1回复 待解决
如何初始化OceanBase服务器环境?
3620浏览 • 1回复 待解决