Ich habe einen Dienst, der einige Daten asynchron erhält. Es verursacht die Komponente zu rendern oder so denke ich. Es gibt nur eine console.log in der Auflösung des Versprechens. Warum verursacht dies das Rendern?Komponentenaktualisierung/render wird ausgelöst
constructor(private viewService: viewService) {
console.log('[MyView component] construction started');
viewService.getData(1).then(function(result) {
console.log('[MyView component] got data from service!');
});
console.log('[MyView component] construction complete!');
}
Fehler:
ERROR TypeError: Cannot read property 'myViewProperty' of undefined
at Object.eval [as updateDirectives] (MyViewComponent.html:23)
at Object.debugUpdateDirectives [as updateDirectives] (core.es5.js:12806)
at checkAndUpdateView (core.es5.js:12144)
at callViewAction (core.es5.js:12507)
at execComponentViewsAction (core.es5.js:12439)
at checkAndUpdateView (core.es5.js:12150)
at callViewAction (core.es5.js:12507)
at execEmbeddedViewsAction (core.es5.js:12465)
at checkAndUpdateView (core.es5.js:12145)
at callViewAction (core.es5.js:12507)
Ich bin mir ziemlich sicher, dass das nicht genug Informationen sind. Wo verwenden Sie 'myViewProperty', die den Fehler verursacht? –
Die Sache ist, es ist nichts in der. Dann sehe ich nicht, wie es dazu führen könnte, dass die Komponente zu aktualisieren. Ich aktualisiere die Frage mit der Variablen –
Die Vervollständigung eines 'Versprechens' oder Ereignisses eines 'Observablen' bewirkt, dass die Änderungserkennung ausgeführt wird, was ein erneutes Rendern verursacht. Ich schätze, Sie bekommen den Fehler schon bevor die Antwort eintrifft. –