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
待解决
相关问题
应用卡片内部组件能使用装饰器吗?
428浏览 • 1回复 待解决
使用@Builder装饰器包含自定义组件的方法与普通方法的区别是什么
2385浏览 • 1回复 待解决
ArkTs中异步方法如何转变成同步方法
2592浏览 • 0回复 待解决
HarmonyOS 关于自定义事件回调的方法中,this为undefine
445浏览 • 1回复 待解决
HarmonyOS现在的ArkTS语法怎么编写自定义装饰器,包括类、方法、属性、参数的装饰器
624浏览 • 1回复 待解决
HarmonyOS 引用找不到方法
414浏览 • 1回复 待解决
系统日历方法使用会抛异常
581浏览 • 0回复 待解决
@Sendable装饰器 用于解决无法在taskpool调用对象内的方法。为什么以装饰器的方式解决
2302浏览 • 1回复 待解决
AOP对方法做执行前插桩、执行后插桩、替换方法
1029浏览 • 1回复 待解决
web组件的controller被注册jsbridge的类对象引用后,导致在类对象方法内部调用h5方法时方法卡死
878浏览 • 1回复 待解决
HarmonyOS 匿名内部类如何使用外部类的变量与方法
192浏览 • 1回复 待解决
@Extend装饰器装饰的方法现在不支持跨文件调用,后续是否有计划支持?
2026浏览 • 1回复 待解决
HarmonyOS 两个自定义UI怎么调用对方的方法
85浏览 • 1回复 待解决
HarmonyOS 上架前内部测试方法
205浏览 • 1回复 待解决
HarmonyOS 如何直接调用内部page或者组件的方法
131浏览 • 1回复 待解决
Aspect工具装饰器的使用示例
2306浏览 • 2回复 待解决
HarmonyOS @Builder装饰的方法可以作为参数传递吗
239浏览 • 1回复 待解决
#鸿蒙通关秘籍#为什么我有时候使用@Builder装饰器会直接报错呢?这个装饰器还有限制条件的吗?
341浏览 • 1回复 待解决
自定义装饰器的使用问题
931浏览 • 1回复 待解决
HarmonyOS 如何在应用内部调用方法清除应用缓存
24浏览 • 1回复 待解决
HarmonyOS addAfter方法使用
249浏览 • 1回复 待解决
HarmonyOS AsyncCallback的使用方法
1038浏览 • 1回复 待解决
HarmonyOS 使用napi方法返回一个对象,多次调用会闪退
187浏览 • 1回复 待解决
getInspectorByKey方法使用
508浏览 • 1回复 待解决
class不是一个对象是一个类,所以在这个类实例化之前是没有this的。