我希望将回调函数分配给组件变量......例如
...
export class MyComponent {
private myCompVar: any;
myFunc = function(callback: (number) => void): void {
this.myCompVar = callback;
}
}
...然后在MyComponent的另一个函数中调用此回调函数。 E.g:
...
export class MyComponent {
private myCompVar: any;
...
myOtherFunc(event): void {
...
this.myCompVar(callbackParam);
}
}
然而,当我像上面那样实现这个时,会发生一个错误,说“这个.myCompVar'当我尝试在myOtherFunc'内部调用它时,它是未定义的。这让我感到困惑,因为我已经确认回调正在' myFunc'中正确设置。它的类型是'功能'。 ' myOtherFunc'在myFunc'之后也会被调用。被调用并按预期返回。
非常感谢任何帮助!
答案 0 :(得分:2)
使用function
,您将丢失正确的this
上下文。我建议使用lambda(胖箭头函数),它正确地绑定到正确的this
上下文:
myFunc = (callback: (number) => void): void => {
this.myCompVar = callback;
}