@Extend装饰器装饰的方法现在不支持跨文件调用,后续是否有计划支持?

@Extend装饰器装饰的方法现在不支持跨文件调用,后续是否有计划支持?或有类似的自定义方法扩展支持跨文件调用


HarmonyOS
2024-05-06 22:53:20
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
dickhome

当前已有能力实现样式跨文件复用

//定义样式文件,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-05-07 15:40:30
相关问题
是否支持自定义装饰
2103浏览 • 1回复 待解决
装饰 @Styles 和 @Extend
405浏览 • 1回复 待解决
HarmonyOS 是否支持自定义装饰
247浏览 • 1回复 待解决
ArkTS是否支持自定义装饰
2486浏览 • 1回复 待解决
http类不支持cancel方法
174浏览 • 1回复 待解决
本地模拟不支持断点调试????
2561浏览 • 1回复 待解决
API 9 是否不支持 npm 了?
2738浏览 • 1回复 待解决