HarmonyOS @Extend 的使用问题

@Extend(Text) function fancy (fontSize: number) { 
  .fontColor(Color.Red) 
  .fontSize(fontSize) 
}

这个扩展的style 能 定义在一个文件中,项目的有需要的组件都能使用么,目前只有定义在同一个文件下的component能应用到这个自定义的属性

HarmonyOS
2024-08-03 14:09:27
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
elucky

当前已有能力实现样式跨文件复用,类似viewModifier,

//定义样式文件,MyImageModifier .ets

import { ImageModifier } from “@ohos.arkui.modifer”; 
class MyImageModifier extends ImageModifier { 
  public syncModeValue?: boolean 
  public cacheModeValue?: boolean 
  override applyNormalAttribute(instance: ImageAttribute): void { 
    super.applyNormalAttribute(instance) 
    // extend logics 
  } 
  syncMode(isSync: boolean) : MyImageModifier { 
    this.syncModeValue = isSync 
    return this 
  } 
  cacheMode(isCached: boolean) : MyImageModifier { 
    this.cacheModeValue = isCached 
    return this 
  } 
} 
//封装自定义组件@Component 
struct MyImage { 
  @Link modifier: MyImageModifier 
  @State src: string 
  build() { 
    Image(this.src) 
      .attributeModifier(this.modifier) 
  } 
  aboutToAppear() { 
    if (this.modifier.syncModeValue) { 
      // do something 
    } 
    if (this.modifier.cacheModeValue) { 
      // do something 
    } 
  } 
} 
//使用自定义组件 
@Entry @Component 
struct Index { 
  @State myImageModifier: MyImageModifier = 
    new MyImageModifier() 
      .syncMode(true) 
      .cacheMode(true) 
      .autoResize(true) 
      .renderMode(ImageRenderMode.Template) 
      .width(100) 
  isSync: boolean = false 
 
  build() { 
    Row() { 
      MyImage({ modifier: this.myImageModifier, src: $r(‘xxxx’) }) 
      Button(“Click”).onClick(() => { 
        isSync = !isSync 
        this.myImageModifier.syncMode(isSync) 
      }) 
    } 
  } 
}
分享
微博
QQ
微信
回复
2024-08-04 14:04:53
相关问题
@Extend、@Styles、@Builder 区别?
119浏览 • 1回复 待解决
@Extend样式如何跨组件共享?
2105浏览 • 1回复 待解决
HarmonyOS MMKV使用问题
50浏览 • 1回复 待解决
HarmonyOS关于API使用问题
98浏览 • 1回复 待解决
@Style 和 @Extend 是否支持export导出
733浏览 • 1回复 待解决
HarmonyOS关于异步Promise使用问题
155浏览 • 1回复 待解决
HarmonyOS soundpool使用问题
109浏览 • 1回复 待解决
HarmonyOS lottie使用问题
61浏览 • 1回复 待解决
HarmonyOS RichEditor 使用问题
143浏览 • 1回复 待解决
HarmonyOS resourceManager使用问题
144浏览 • 1回复 待解决
HarmonyOS地图使用问题
59浏览 • 1回复 待解决
HarmonyOS Navigation 使用问题
99浏览 • 1回复 待解决
HarmonyOS filePreview使用问题
52浏览 • 1回复 待解决
HarmonyOS onAreaChange使用问题
133浏览 • 1回复 待解决
HarmonyOS ProtoBuffer使用问题
80浏览 • 1回复 待解决
HarmonyOS关于使用fs.copyfile问题
105浏览 • 1回复 待解决
使用C++进行HarmonyOS开发问题
185浏览 • 2回复 待解决
HarmonyOS getRawFileContent使用问题咨询
228浏览 • 1回复 待解决
HarmonyOS picker使用问题确认
81浏览 • 1回复 待解决
RichTextLayout使用问题
7459浏览 • 1回复 待解决