Angular 2:无法读取属性' push'未定义的

时间:2016-11-17 09:03:46

标签: angularjs arrays angular

在我的Angular 2应用程序中,我有一个功能:

notification : Array<any>;
......
......
 getNotification () {
     return setTimeout(() => {
         this.AppbankService.notify(this.user.NameId)
     .subscribe(
         (response) => {
             if (response.status === 200) {
             this.notifications.push(response.json());
             console.log(typeof(this.notifications));
              }
             this.getNotification();
         }
     )
     },5000)}

在这个函数中,我每5秒从服务器收到一次通知,并尝试将它们推送到一个数组,但是有这个:

  

错误app.module.ts:104错误:TypeError:无法读取属性&#39; push&#39;未定义的(...)

有什么建议吗?

3 个答案:

答案 0 :(得分:11)

更改

notification : Array<any>;

notification : Array<any> = [];

答案 1 :(得分:0)

我有同样的推送字符串消息问题,我的问题已通过以下代码解决。

  messages: Array<string> = [];
  add(message: string): void {
    this.messages.push(message);
}

答案 2 :(得分:0)

我遇到了同样的问题,然后发现我忘记初始化服务方法本身,并且将其类型设置为any。