2017-10-06 2 views
0

Ich versuche, ein Array elections als eine berechnete Eigenschaft innerhalb meiner Vuejs-Komponente zu erstellen, indem ich weitere UI-relevante Informationen zum Array elections meines Datenspeichers hinzufüge.VueJS berechnete Daten und Bereiche

export default { 
    computed: { 
     data() { 
      var elections = []; 
      this.$dataStore.state.elections.forEach((el) => { 
       console.log(this); 
       var election = { id:el.id, icon: 'assignment', iconClass: 'blue white--text', title: el.title, subtitle: 'Jan 20, 2018' }; 
       this.elections.push(election); 
      }); 

      return { 
       elections: this.elections 
      } 
     } 
    } 
} 

Aber ich bin immer eine „Can not Eigenschaft‚Push‘undefinierte lesen““Fehler. Was ist hier falsch?

Antwort

2

this.elections Referenzierung vor der data Methode zurückgegeben hat, wird da nicht arbeitet die Vue-Instanz Dateneigenschaften noch nicht eingestellt worden.

Aber Sie brauchen nicht this.elections für verweisen, was Sie zu tun versuchen. Referenz einfach die elections Array, das Sie vor dem forEach initialisiert.

Auch haben Sie Ihre data Methode in der computed Objekt, aber es sollte außerhalb davon sein.

Auch, wie @Bert in den Kommentaren erwähnt, Sie wahrscheinlich push anstelle von put beim Hinzufügen zu dem Array gemeint.

Hier ist, was es sollte wie folgt aussehen:

export default { 
    data() { 
    var elections = []; 
    this.$dataStore.state.elections.forEach((el) => { 
     var election = { id:el.id, icon: 'assignment', iconClass: 'blue white--text', title: el.title, subtitle: 'Jan 20, 2018' }; 
     elections.push(election); 
    }); 

    return { 
     elections: elections 
    } 
    } 
} 
+0

Thank you! Ahh ja und es sollte "Push" sein, sorry dafür! – netik

Verwandte Themen