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

​按照如下做,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文件导入,并完成调用
2350浏览 • 1回复 待解决
lottile动画加载完成回调不调用
850浏览 • 1回复 待解决
如何删除已完成redis流事件?
2631浏览 • 1回复 待解决
HarmonyOS如何根据条件加载页面
186浏览 • 1回复 待解决
MySQL 如何按照地理位置排序?
2596浏览 • 1回复 待解决
mysql 如何匹配多个 like 条件?
3860浏览 • 1回复 待解决
触发onWillScroll条件都有哪些?
395浏览 • 1回复 待解决
@Extend样式如何跨组件共享?
2210浏览 • 1回复 待解决
如何设置Swiper导航点样式
320浏览 • 1回复 待解决
HarmonyOS 如何设定tabs组件tabbar样式
369浏览 • 1回复 待解决
举例说明媒体条件查询如何使用
206浏览 • 1回复 待解决
组件复用生效条件有哪些?
185浏览 • 1回复 待解决
HarmonyOS 如何设置控件样式
78浏览 • 1回复 待解决