Я вызываю эти API с сервера Node Express в service.ts и подписываю их в component.ts. Я мог проверить, что ответы были правильными, и могли копировать его в интерфейсный объект, а также могли сохранять их в console.log. Тем не менее, я не могу получить доступ к каждому свойству объекта. Когда я console.log объекта, он показывает значения с каждым свойством, но не может видеть каждое отдельно (показывает неопределенный). Проверьте приведенные ниже коды.
это интерфейс для хранения ответа на запрос на получение
export interface LOLUserData {
profileIconId: number;
name: string;
puuid: string
summonerLevel: number;
revisionDate: number;
id: string;
accountId: number;
profileimg: string;
}
Это API от узла express сервер
app.route("/api/profile/").get((req, res) => {
fetch("https://na1.api.riotgames.com/lol/summoner/v4/summoners/by-name/" + req.query.name + "?api_key=RGAPI-e98dc13b")
.then(res => res.json())
.then(data => {
res.send({ data });
})
.catch(err => {
res.send(err);
});
});
Это service.ts
getdata(name: string): Observable<LOLUserData> {
return this.http
.get<LOLUserData>('http://localhost:8000/api/profile/', {
params: {
name: name
}
}).pipe(map(res => res))
Это подписка
public heroes: LOLUserData; //interface object
getHeroes = (name: string) => {
this.summonerService.getdata(name).subscribe(hero => {
this.heroes = hero; //copies a response
console.log(this.heroes); //I can see all properties here
this.heroes.profileimg = this.url + this.heroes.profileIconId + ".png";
//this.heroes.profileIconId is undefined
this.submitted = true;
}),
error => this.setErrValue(this.heroes)
}
}
Я могу проверить ответ от узла express server, service.ts и component.ts, так что я не думаю, с ответом что-то не так, но я не знаю, почему какое-то одно значение из ответа отображается неопределенным.