函数上下文改变无法识别局部变量
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
而不是 []
所以它失去了它的数组属性。
我正在使用数据服务在同级组件之间传递数据。 我在数据服务中遇到一个问题,当 访问数组并将数据 推入其中时 函数的上下文发生变化 。
@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
而不是 []
所以它失去了它的数组属性。