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

​按照如下做,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
相关问题
HarmonyOS 自定义方法链式调用
189浏览 • 1回复 待解决
HarmonyOS 自定义组件支持链式调用
51浏览 • 1回复 待解决
如何将so文件导入,并完成调用
2786浏览 • 1回复 待解决
lottile动画加载完成回调不调用
1015浏览 • 1回复 待解决
MySQL 如何按照地理位置排序?
2763浏览 • 1回复 待解决
HarmonyOS如何根据条件加载页面
362浏览 • 1回复 待解决
如何删除已完成redis流事件?
2858浏览 • 1回复 待解决
mysql 如何匹配多个 like 条件?
4038浏览 • 1回复 待解决
触发onWillScroll条件都有哪些?
718浏览 • 1回复 待解决