"Typ" Objekt "ist nicht zuordenbar Art" mit neuen HttpClient / HttpGetModule
Folgenden Google ' s offizielle Angular 4.3.2 doc hier, ich war in der Lage, einen einfachen get
Anfrage von einem lokalen json-Datei. Ich wollte Praxis schlagen einen echten Endpunkt, von JSON-Platzhalter Seite, aber ich habe Schwierigkeiten, herauszufinden, was in dem .subscribe()
Betreiber. Ich habe eine IUser
- Schnittstelle zu erfassen, die Felder des payload, aber die Zeile mit .subscribe(data => {this.users = data})
den Fehler auslöst Type 'Object' is not assignable to type 'IUser[]'
. Was ist der richtige Weg, dies zu behandeln? Scheint ziemlich einfach, aber ich bin ein noob.
Mein code ist unten:
import { Component, OnInit } from '@angular/core';
import { HttpClient } from '@angular/common/http';
import { IUsers } from './users';
@Component({
selector: 'pm-http',
templateUrl: './http.component.html',
styleUrls: ['./http.component.css']
})
export class HttpComponent implements OnInit {
productUrl = 'https://jsonplaceholder.typicode.com/users';
users: IUsers[];
constructor(private _http: HttpClient) { }
ngOnInit(): void {
this._http.get(this.productUrl).subscribe(data => {this.users = data});
}
}
Da die Daten nicht der Typ IUsers, versuchen Sie, diese
Danke @cyrix .
.subscribe((data: IUsers) => ...
oder this.users = data as any;
Danke @cyrix .
data as any
hat den trick in meinem Fall.InformationsquelleAutor midnightnoir | 2017-07-31
Du musst angemeldet sein, um einen Kommentar abzugeben.
Die Sie tatsächlich haben ein paar Möglichkeiten hier, aber, dass Generika verwendet werden, um Sie zu wirken, der Typ, den Sie erwarten.
Außerdem würde ich empfehlen die Verwendung von asynchronen Leitungen in Ihrer Vorlage, dass das automatische abonnieren /abbestellen, vor allem, wenn Sie brauchen keine Lust auf Logik, und du bist nur mapping-Wert.
InformationsquelleAutor Mark Pieszak - Trilon.io
Bin ich auf die Eckige doc-team und eine offene todo-Eintrag ist zu ändern diese docs zu zeigen, die "beste Praxis" - Wege auf Http ..., die durch einen service.
Hier ist ein Beispiel:
Die Komponente würde dann so Aussehen:
Super!!! Nur zur info ... der Kurs nutzt derzeit die alte Http-Dienst. Wir arbeiten an einem update jetzt.
Roger, ich versuche, es herauszufinden, auf meine eigene, wie eine übung 😛
Kurze Frage, was ist der Grund, typcast-api-url nach dem http.bekommen? Ich versuchte es ohne, und es immer noch gibt richtige Daten.
Ich bemerkte dies auch. Ich nehme an, es ist, weil die Funktion zurück geben, die wir definiert haben. Wenn wir auch entfernen, dann werden die Daten nur Beobachtende(Objekt). So scheint es, dass wir gehen könnten, mit der entweder die Umwandlung oder den Rückgabetyp der Methode. Ich mag beide für Klarheit.
InformationsquelleAutor DeborahK