2016-11-17 5 views
3

In meiner Angular 2 Anwendung gelesen habe ich eine Funktion:Angular 2: kann nicht Eigenschaft 'Push' von undefined

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)} 

In dieser Funktion i Benachrichtigung vom Server alle 5 Sekunden zu bekommen, und versuchen, sie zu schieben ein Array, aber a haben dies: Fehler app.module.ts: 104 Fehler: TypeError: Kann nicht 'Push' von undefined (...)

lesen

Jeder Vorschlag?

Antwort

8

ändern

notification : Array<any>; 

zu

notification : Array<any> = []; 
+0

thx es funktioniert für mich, aber können Sie mir sagen, warum ich das tun muss? Typ ist nicht genug? –

+2

Nein, nur Typ gibt an, welche Art von Werten in dieser Eigenschaft gespeichert werden kann, aber es enthält noch keinen Wert. Mit '= []' initialisieren wir es mit einem leeren Array, das die '.push()' Methode hat. –

+0

funktioniert für mich .. groß –

0

hatte ich das gleiche Problem von Push-String-Nachricht und mein Problem wird von unten Code behoben.

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