HarmonyOS Button的拓展属性中不支持stateStyles,如何封装实现按钮的通用点击效果?
问题描述:我们在封装通用组件时,考虑使用两种方案:
第一种:直接封装组件,这样做存在一个问题,就是在其他页面引入组件后,把组件enable设置为false,无法触发组件内Button的stateStyles,按钮颜色未变为红色。
@Component
export struct CommonButton {
text = '按钮'
onClickEvent = () => {
};
build() {
Button(this.text, { type: ButtonType.Normal })
.fontSize(16)
.height(48)
.borderRadius(8)
.backgroundColor('#00CE83')
.stateStyles({
disabled: {
.backgroundColor(Color.Red)
}
})
.width('100%')
}
}
第二种:使用封装拓展样式@Extend在使用Button的拓展属性@Extend(Button),给按钮设置通用点击样式stateStyles,但是此时编译器报错“Identifier expected. <ArkTSCheck>”。
@Extend(Button)
function commonButtonStyle() {
.fontSize(16)
.height(48)
.borderRadius(8)
.backgroundColor('#00CE83')
.stateStyles({
disabled: {
//此处 . 报错 Identifier expected.
.backgroundColor(Color.Red)
}
})
.width('100%')
}
请问有没有办法实现封装通用 按钮,并且可以stateStyles内的属性生效?
HarmonyOS
赞
收藏 0
回答 1
待解决
相关问题
如何实现按钮的点击效果?
465浏览 • 2回复 待解决
预览器@builder封装的组件不支持@priview预览
194浏览 • 1回复 待解决
Refresh组件不支持设置nestedScroll属性
1946浏览 • 1回复 待解决
linear-gradient不支持start,end属性
838浏览 • 1回复 待解决
tabs组件不支持前后设置其他组件,也不支持前后tabs设置margin属性
1247浏览 • 1回复 待解决
如何实现通用的吸顶效果
671浏览 • 1回复 待解决
arkts语言中如何实现点击button按钮跳转到tabs组件中的指定页签?
2101浏览 • 1回复 待解决
c++底层的openssl库不支持,boost库的asio异步通讯库不支持,libuv无法实现https的请求
155浏览 • 1回复 待解决
应用开发中的CSS不支持伪元素吗?
6556浏览 • 1回复 待解决
#鸿蒙学习大百科#预览器@builder封装的组件不支持@priview预览
264浏览 • 1回复 待解决
HarmonyOS 如何设置组件点击效果(非button组件)?
322浏览 • 1回复 待解决
HarmonyOS filePreview 不支持pdf文件的预览 ?
218浏览 • 0回复 待解决
HarmonyOS filePreview 不支持pdf文件的预览
696浏览 • 1回复 待解决
鸿蒙js开发ui不支持transition-duration这个属性吗?那要怎么简便的写按钮按下动画呢?
6541浏览 • 1回复 待解决
@BuilderParam 不支持普通class的变量
787浏览 • 1回复 待解决
HarmonyOS ArkTS不支持动态声明字段,不支持动态访问字段。只能访问已在类中声明或者继承可见的字段
194浏览 • 1回复 待解决
ArkTS TabContent除支持通用属性外,还支持以下属性tabBar,这个如何实现?
442浏览 • 1回复 待解决
是否支持jit和aot(jit不支持,aot支持),如果不支持jit怎么动态下发
2259浏览 • 1回复 待解决
HarmonyOS 自定义的组件如何封装一些通用的属性和方法,例如 Java 中的继承
29浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何在HarmonyOS Next中实现点击按钮改变数字的动态效果?
209浏览 • 1回复 待解决
arkts中不支持bigint数据类型
2052浏览 • 1回复 待解决
Button等控件设置点击效果
1044浏览 • 1回复 待解决
Panel不支持水平方向的拖拉
670浏览 • 1回复 待解决
web组件不支持localstorage
815浏览 • 1回复 待解决
demo如下,大组件被禁用了,没有传递到子组件。