如何解决无法在foreach循环中读取属性错误的问题

时间:2019-04-21 23:29:29

标签: typescript ionic-framework ionic3

我有一个foreach循环,可以从firebase提取数据。 我想设置一个全局变量来保存“ spotrating”(每个对象的属性)。 但是,当我在forEach循环中调用全局变量时,出现错误“无法设置未定义的属性发现”

当我尝试在代码的每个其他部分中记录全局变量时,它都起作用,但是当我在forEach循环中执行该操作时,它不起作用

spotrating: any;

稍后在我的代码中

temparr.forEach(function(firebaseSpot) {
        console.log(this.spotrating);
 });

我希望将Spotrating的值打印出到控制台,但我会不断收到错误。 “无法读取未定义的房地产现货评级”

1 个答案:

答案 0 :(得分:0)

this的范围是指您的功能,因为您没有使用粗箭头符号。 spotrating未在您的函数中定义。如果要this引用外部函数(调用它的函数),请使用以下粗箭头表示法。范围界定会咬你。默认情况下,我使用粗箭头,除非我希望回调或函数的范围是该回调或函数。通常我不会。

temparr.forEach(firebaseSpot => {
        console.log(this.spotrating);
 });

Docs