ngOnInit无法更新局部变量

时间:2019-09-10 10:05:29

标签: javascript angular typescript

真的很简单,我在页面上设置了一个变量,用于在字体末端创建一堆盒子。我像这样初始化该变量:

organisations: Organisation[];

,然后在ngOnInit中,我从存储中获取了一些数据,然后将这些数据用于填充此变量。所以整个页面看起来像这样:

export class SelectOrganisationPage implements OnInit {
  organisations: Organisation[];

  constructor(private authentication: AuthenticationService, private storage: Storage) { }

  ngOnInit() {
    this.storage.get(USER_DETAILS).then(user => {
      const parsedUser: User = JSON.parse(user);

      parsedUser.organisations.forEach(org => {
        if (!org.active) {
          return;
        }

        this.organisations.push(org);
      });
    });
  }
}

this.organisations.push(org);行上,出现以下错误:

ERROR Error: Uncaught (in promise): TypeError: Cannot read property 'push' of undefined

我不明白为什么此时无法读取this.organisations。除非我对实际错误有误?

从上下文上讲,这与另一个问题不同。

1 个答案:

答案 0 :(得分:4)

该错误表明organisations未定义,因此您必须使用一个空数组对其进行初始化。

尝试这样:

organisations: Organisation[] = [];