HarmonyOS 对方法使用装饰器方法内部的this引用会变成undefine
export function BRBridge(target: Object, key: string, descriptor: PropertyDescriptor) {
const originalMethod: Function = descriptor.value
descriptor.value = (...args: Object[]) => {
let result: Function = originalMethod(...args)
return result
}
return descriptor
}
// 使用场景是
export class CommonBridge {
proxy: IWebViewControllerProxy;
constructor(webviewControllerProxy: IWebViewControllerProxy) {
this.proxy = webviewControllerProxy;
}
@BRBridge
async getUserInfo(info: BrMethodInfo) {
this.proxy.runJavaScript();
}
}
因为装饰器中的target似乎并不是类的实例而是类构造器的实例,所以在实际调用中this被替换成了类构造器的实例,从而proxy成了undefine如何解决这种问题。
HarmonyOS
赞
收藏 0
回答 1
待解决
相关问题
使用@Builder装饰器包含自定义组件的方法与普通方法的区别是什么
2643浏览 • 1回复 待解决
应用卡片内部组件能使用装饰器吗?
565浏览 • 1回复 待解决
ArkTs中异步方法如何转变成同步方法
2863浏览 • 0回复 待解决
HarmonyOS 关于自定义事件回调的方法中,this为undefine
584浏览 • 1回复 待解决
HarmonyOS现在的ArkTS语法怎么编写自定义装饰器,包括类、方法、属性、参数的装饰器
880浏览 • 1回复 待解决
HarmonyOS 引用找不到方法
710浏览 • 1回复 待解决
系统日历方法使用会抛异常
795浏览 • 0回复 待解决
AOP对方法做执行前插桩、执行后插桩、替换方法
1229浏览 • 1回复 待解决
web组件的controller被注册jsbridge的类对象引用后,导致在类对象方法内部调用h5方法时方法卡死
950浏览 • 1回复 待解决
HarmonyOS 匿名内部类如何使用外部类的变量与方法
297浏览 • 1回复 待解决
@Sendable装饰器 用于解决无法在taskpool调用对象内的方法。为什么以装饰器的方式解决
2418浏览 • 1回复 待解决
@Extend装饰器装饰的方法现在不支持跨文件调用,后续是否有计划支持?
2302浏览 • 1回复 待解决
HarmonyOS 两个自定义UI怎么调用对方的方法
181浏览 • 1回复 待解决
HarmonyOS 上架前内部测试方法
432浏览 • 1回复 待解决
HarmonyOS 如何直接调用内部page或者组件的方法
252浏览 • 1回复 待解决
Aspect工具装饰器的使用示例
2510浏览 • 2回复 待解决
HarmonyOS @Builder装饰的方法可以作为参数传递吗
366浏览 • 1回复 待解决
自定义装饰器的使用问题
1096浏览 • 1回复 待解决
#鸿蒙通关秘籍#为什么我有时候使用@Builder装饰器会直接报错呢?这个装饰器还有限制条件的吗?
637浏览 • 1回复 待解决
HarmonyOS 如何在应用内部调用方法清除应用缓存
171浏览 • 1回复 待解决
HarmonyOS AsyncCallback的使用方法
1423浏览 • 1回复 待解决
HarmonyOS addAfter方法使用
428浏览 • 1回复 待解决
HarmonyOS 使用napi方法返回一个对象,多次调用会闪退
433浏览 • 1回复 待解决
class不是一个对象是一个类,所以在这个类实例化之前是没有this的。