函数上下文改变无法识别局部变量

Function Context Changes and Cannot Recognize Local Variables

我正在使用数据服务在同级组件之间传递数据。 我在数据服务中遇到一个问题,当 访问数组并将数据 推入其中时 函数的上下文发生变化

@Injectable()
export class PassDataProxy {

passedData = [];

constructor(
) { }

pushPassedData = (input) => {

    //I can see the data passed into the function from this console
    console.log("To push: " + JSON.stringify(input));

    //This is where things go south
    this.passedData.push(input);
}

getPassedData(input) {
    return Observable.of(this.passedData);
}

clearPassedData() {
    this.passedData = null;
}

}

我从子组件注入了依赖并调用了pushPassedData函数,我可以从控制台看到数据已成功传递给该函数。但是当你访问 passedData 数组和 运行 push 函数时,它给出了这个错误:

我的猜测是上下文已更改,它无法再识别数组,所以我使用箭头函数而不是普通函数。即使那样,我仍然有这个错误。

感谢您的帮助。

我意识到我在调用pushPassedData之前调用了clearPassedData

这没什么问题,但是 clearPassedData 函数应该看起来像

clearPassedData() {
    this.passedData = [];
}

我意识到我将变量设置为 null 而不是 [] 所以它失去了它的数组属性。