我正在使用数据服务在兄弟组件之间传递数据。 我在数据服务中遇到一个问题,当访问数组并将数据输入时,功能的上下文会发生变化。
@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
函数时,会出现此错误:
我的猜测是上下文已经改变,它不能再识别数组,所以我用箭头函数而不是普通函数。即便如此,我仍然有这个错误。
感谢您的帮助。
答案 0 :(得分:0)
我意识到在致电clearPassedData
之前我曾致电pushPassedData
。
这没有任何问题,但clearPassedData
函数看起来应该是
clearPassedData() {
this.passedData = [];
}
我意识到我将变量设置为null
而不是[]
,因此它丢失了数组属性。