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();
}
}
- 1.
- 2.
- 3.
- 4.
- 5.
- 6.
- 7.
- 8.
- 9.
- 10.
- 11.
- 12.
- 13.
- 14.
- 15.
- 16.
- 17.
- 18.
- 19.
- 20.
- 21.
- 22.
因为装饰器中的target似乎并不是类的实例而是类构造器的实例,所以在实际调用中this被替换成了类构造器的实例,从而proxy成了undefine如何解决这种问题。
HarmonyOS
赞
收藏 0
回答 1
相关问题
应用卡片内部组件能使用装饰器吗?
915浏览 • 1回复 待解决
使用@Builder装饰器包含自定义组件的方法与普通方法的区别是什么
3113浏览 • 1回复 待解决
HarmonyOS 关于自定义事件回调的方法中,this为undefine
950浏览 • 1回复 待解决
ArkTs中异步方法如何转变成同步方法
3465浏览 • 0回复 待解决
HarmonyOS现在的ArkTS语法怎么编写自定义装饰器,包括类、方法、属性、参数的装饰器
1420浏览 • 1回复 待解决
HarmonyOS 引用找不到方法
1146浏览 • 1回复 待解决
系统日历方法使用会抛异常
1199浏览 • 0回复 待解决
AOP对方法做执行前插桩、执行后插桩、替换方法
1654浏览 • 1回复 待解决
哪个装饰器是用于定义组件的内部状态的?
286浏览 • 1回复 待解决
web组件的controller被注册jsbridge的类对象引用后,导致在类对象方法内部调用h5方法时方法卡死
1246浏览 • 1回复 待解决
@Sendable装饰器 用于解决无法在taskpool调用对象内的方法。为什么以装饰器的方式解决
2887浏览 • 1回复 待解决
HarmonyOS 匿名内部类如何使用外部类的变量与方法
642浏览 • 1回复 待解决
@Extend装饰器装饰的方法现在不支持跨文件调用,后续是否有计划支持?
2709浏览 • 1回复 待解决
HarmonyOS 两个自定义UI怎么调用对方的方法
498浏览 • 1回复 待解决
HarmonyOS 上架前内部测试方法
801浏览 • 1回复 待解决
HarmonyOS 如何直接调用内部page或者组件的方法
578浏览 • 1回复 待解决
Aspect工具装饰器的使用示例
2944浏览 • 2回复 待解决
HarmonyOS @Builder装饰的方法可以作为参数传递吗
717浏览 • 1回复 待解决
#鸿蒙通关秘籍#为什么我有时候使用@Builder装饰器会直接报错呢?这个装饰器还有限制条件的吗?
1044浏览 • 1回复 待解决
自定义装饰器的使用问题
1476浏览 • 1回复 待解决
HarmonyOS 如何在应用内部调用方法清除应用缓存
507浏览 • 1回复 待解决
HarmonyOS addAfter方法使用
850浏览 • 1回复 待解决
HarmonyOS AsyncCallback的使用方法
2060浏览 • 1回复 待解决
class不是一个对象是一个类,所以在这个类实例化之前是没有this的。