如何按照条件完成样式的链式调用

​按照如下做,Row 以及里面的代码需要写两遍,有没有可以避免写两遍的方式。

@Prop sizeOverride = null 
@Style presetStyle() { 
  .width(100) 
  .height(100) 
} 
 
@Style overrideStyle() { 
  .width(this.sizeOverride.width) 
  .height(this.sizeOverride.height) 
} 
 
build() { 
  if(this.sizeOverride) { 
    Row() {}.overrideStyle() 
  } else { 
    Row() {}.presetStyle() 
  } 
}
HarmonyOS
2024-01-30 22:59:40
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
gnt_xxy

@Syles不支持链式调用的三元运算符的写法,而且@Styles不支持参数,可以将style的逻辑处理前置类似写法如下:

@Prop sizeOverride = null 
@Styles rowStyle() { 
  .width(this.sizeOverride?this.sizeOverride.width:100) 
  .height(this.sizeOverride?this.sizeOverride.height:100) 
} 
 
build() { 
  Row() {}.rowStyle() 
}
分享
微博
QQ
微信
回复
2024-02-01 11:15:57
相关问题
如何将so文件导入,并完成调用
680浏览 • 1回复 待解决
lottile动画加载完成回调不调用
510浏览 • 1回复 待解决
如何删除已完成redis流事件?
1659浏览 • 1回复 待解决
mysql 如何匹配多个 like 条件?
2701浏览 • 1回复 待解决
@Extend样式如何跨组件共享?
1252浏览 • 1回复 待解决
MySQL 如何按照地理位置排序?
1596浏览 • 1回复 待解决
如何自定义滚动条样式
75浏览 • 1回复 待解决
如何设置组件不同状态下样式
853浏览 • 1回复 待解决
PostgreSQL WHERE 计数条件
1800浏览 • 2回复 待解决
RichEditor组件如何设置初始字体样式
486浏览 • 1回复 待解决
LoadingProgress如何修改加载动画样式
557浏览 • 1回复 待解决
「多态控件」效果样式确认
620浏览 • 1回复 待解决