2017-05-16 3 views
1

Ich bin neu in VueJS und finde die Dokumentation fehlt, aber ich versuche, an einer Komponente zu arbeiten, wo es einen Standardwert für Kommentaranzahl auf 0 setzt, aber dann, wenn eine Zusage ein zurückgibt Wert Ich möchte dies in der Ansicht aktualisieren.vuejs Wert in Vorlage von einem Versprechen aktualisieren

Vue.component('commentsCount', { 
    template: ` 
     <strong class="t-bold">{{count}}</strong> 
    `, 
    data:() => ({ count: 0 }), 
    created:() => { 
     this.count = Review.stats(productCode) 
     .then((res) => { 
      console.log(res.count); 
      return res.count; 
     }); 
     console.log(this); 
    }, 
    }); 

Ich bin mir nicht sicher, was ich falsch mache, aber das gibt mir die folgenden Fehler und ich habe für die vergangene Stunde auf sie gewesen.

[Vue warn]: Error in created hook: "TypeError: Cannot set property 'count' of undefined"

found in

--->

und dieser Fehler, der auf der Linie this.count = Review.stats(productCode)

TypeError: Cannot set property 'count' of undefined

Antwort

1

Sie sollen den Wert in dem .then Rückruf eingestellt. Verwenden Sie auch keine Pfeilfunktionen zu created (und anderen Methoden), oder Sie werden den Kontext von this verloren. Versuchen Sie folgendes:

Vue.component('commentsCount', { 
    template: ` 
    <strong class="t-bold">{{count}}</strong> 
    `, 
    data:() => ({ count: 0 }), 
    created() { // can't be an arrow function 
    Review.stats(productCode) 
     .then((res) => { 
     console.log(res.count); 
     this.count = res.count; // set count here 
     }); 
    console.log(this); 
    }, 
}); 
+0

ich die folgende Fehlermeldung auf dem 'this.count = res.count'> Uncaught (in Versprechen) Typeerror: Kann nicht gesetzt Eigenschaft‚count‘undefinierter –

+0

Sie Pfeil Funktionen nicht' verwenden created() ' – CodinCat

+0

Eigentlich schrotte ich musste das Layout zu' created() {'wegen Linting ändern –

Verwandte Themen