HarmonyOS 定义自定义组件
@Component
export struct NoteInTitle {
@Prop title: string
@Prop fontSize: number = 13
@Prop enable: boolean = true
// maxLines属性只有某些场景需要,这个导致我的build方法写了一个大的if-else,有没有更好的写法呢?
@Prop maxLines: number
build() {
if (this.maxLines) {
Text(this.title)
.fontSize(this.fontSize)
.enabled(this.enable)
.maxLines(this.maxLines)
.stateStyles({
normal: {
.fontColor($r('app.color.normal_of_title_text'))
},
disabled: {
.fontColor($r('app.color.disable_of_text'))
}
})
} else {
Text(this.title)
.fontSize(this.fontSize)
.enabled(this.enable)
.maxLines(this.maxLines)
.stateStyles({
normal: {
.fontColor($r('app.color.normal_of_title_text'))
},
disabled: {
.fontColor($r('app.color.disable_of_text'))
}
})
}
}
}
在上述代码中,创建了一个自定义组件:NoteInTitle,组件功能主要是在enable和disable时提供两种文本展示颜色;在某些场景下,需要设置maxLines属性,在外部引用该组件时,因为组件不是Text,无法单独设置maxLines;所以将maxLines属性封装在NoteInTitle内部,但这导致在为Text组件设置maxLines属性时,必须要写一个大的if else,这里有没有更好的写法呢?
HarmonyOS
赞
收藏 0
回答 1
待解决
相关问题
HarmonyOS 自定义组件如何写自定义事件?
2062浏览 • 1回复 待解决
HarmonyOS 自定义UI组件如何自定义属性方法
2142浏览 • 1回复 待解决
HarmonyOS 自定义组件问题
1704浏览 • 1回复 待解决
HarmonyOS 自定义滑动组件
1018浏览 • 1回复 待解决
HarmonyOS 自定义了一个组件,如何自定义事件?使其能在父组件使用其自定义事件
1154浏览 • 1回复 待解决
自定义组件嵌套子组件
10876浏览 • 3回复 待解决
HarmonyOS 自定义tabbar组件开发
1209浏览 • 1回复 待解决
HarmonyOS 自定义组件的使用
1194浏览 • 1回复 待解决
HarmonyOS 自定义组件的自定义布局 数据的作用域不对
1364浏览 • 1回复 待解决
HarmonyOS 父页面如何调用自定义组件内自定义方法
1503浏览 • 1回复 待解决
自定义弹窗自定义转场动画
2393浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何为自定义组件实现自定义布局?
1229浏览 • 1回复 待解决
HarmonyOS 如何自定义布局组件
1123浏览 • 1回复 待解决
HarmonyOS ArkUI加载自定义组件
1474浏览 • 1回复 待解决
HarmonyOS 如何自定义toast组件
1230浏览 • 1回复 待解决
HarmonyOS @Component修饰的自定义组件,是否有接口可以destory该自定义组件
1084浏览 • 1回复 待解决
HarmonyOS 是否可以在interface里定义自定义组件?
1421浏览 • 1回复 待解决
HarmonyOS 自定义弹窗怎么设置自定义动画?
1609浏览 • 1回复 待解决
HarmonyOS Navigation组件现在支持自定义返回图标吗?如何自定义修改呢?
2052浏览 • 1回复 待解决
HarmonyOS如何在自定义组件的自定义函数中获取当前的 NavPathStack
1929浏览 • 1回复 待解决
HarmonyOS 自定义弹窗、自定义键盘自动关闭问题
1615浏览 • 1回复 待解决
HarmonyOS CoverFlow效果自定义组件实现
1370浏览 • 1回复 待解决
HarmonyOS 自定义组件生命周期
1216浏览 • 1回复 待解决
HarmonyOS 自定义StepperView组件如何实现
1142浏览 • 1回复 待解决
HarmonyOS 如何主动销毁自定义组件
1320浏览 • 1回复 待解决
设置默认参数,调用的时候不用传递该参数,默认就行: