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 自定义弹窗初始化问题
999浏览 • 1回复 待解决
HarmonyOS 组件初始化参数
975浏览 • 1回复 待解决
HarmonyOS XComponent初始化
1417浏览 • 1回复 待解决
HarmonyOS泛型类属性如何初始化
1609浏览 • 1回复 待解决
HarmonyOS struct初始化方法
1262浏览 • 1回复 待解决
HarmonyOS Component初始化问题
1779浏览 • 1回复 待解决
HarmonyOS export struct初始化参数
1301浏览 • 1回复 待解决
HarmonyOS 初始化EGL环境失败
1162浏览 • 1回复 待解决
初始化安全相机方法
1496浏览 • 1回复 待解决
HarmonyOS 推送服务初始化失败
1251浏览 • 1回复 待解决
HarmonyOS 应用RDB初始化示例
1494浏览 • 1回复 待解决
怎么进行全局初始化操作?
560浏览 • 0回复 待解决
没法调试“已初始化”分支
1242浏览 • 1回复 待解决
HarmonyOS 怎么监听Web初始化完成?
1213浏览 • 1回复 待解决