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

​按照如下做,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
相关问题
如何删除已完成redis流事件?
984浏览 • 1回复 待解决
@Extend样式如何跨组件共享?
504浏览 • 1回复 待解决
mysql 如何匹配多个 like 条件?
2072浏览 • 1回复 待解决
MySQL 如何按照地理位置排序?
1060浏览 • 1回复 待解决
如何设置组件不同状态下样式
159浏览 • 1回复 待解决
PostgreSQL WHERE 计数条件
1107浏览 • 2回复 待解决
BLE扫描条件设置问题有知道吗?
1236浏览 • 1回复 待解决
如何自定义Video组件控制栏样式
190浏览 • 1回复 待解决
buttom样式怎么添加?
4710浏览 • 2回复 待解决
Redis 竞态条件问题有知道吗?
1501浏览 • 1回复 待解决
开发工具安装完成,无法打卡
4734浏览 • 1回复 待解决
何设置组件不同状态下样式
158浏览 • 1回复 待解决