@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
相关问题
是否支持自定义装饰
1033浏览 • 1回复 待解决
ArkTS是否支持自定义装饰
935浏览 • 1回复 待解决
@Track装饰什么作用?
67浏览 • 1回复 待解决
本地模拟不支持断点调试????
1326浏览 • 1回复 待解决
API 9 是否不支持 npm 了?
1456浏览 • 1回复 待解决
web组件不支持localstorage
338浏览 • 1回复 待解决
@BuilderParam 不支持普通class变量
370浏览 • 1回复 待解决
Aspect工具装饰使用示例
874浏览 • 2回复 待解决
Panel不支持水平方向拖拉
336浏览 • 1回复 待解决
@Style 和 @Extend 是否支持export导出
521浏览 • 1回复 待解决
鸿蒙NEXT版本,支不支持APK?
1449浏览 • 1回复 待解决
自定义装饰使用问题
322浏览 • 1回复 待解决
状态装饰 ui不刷新问题
1373浏览 • 1回复 待解决