Требуются некоторые пояснения о том, почему этот фрагмент кода работает при получении данных от объекта json - PullRequest
0 голосов
/ 22 апреля 2020

Вот вопрос, который я пытаюсь выяснить, почему, в основном, чтобы заполнить мое любопытство и понять, как все работает.

У меня есть эта функция внутри службы, чтобы получить всех пользователей

getallUsers() {
return this.http.get<User[]>(`/users`);

}

тогда в моем компоненте у меня есть

ngOnInit() {
this.loading = true;
this.service.getallUsers().pipe(first()).subscribe(users => {
  this.loading = false;
  this.users = users['data'];
});

}

Этот код работает, он будет использовать ngFor для l oop из-за разных имен пользователей на пользователях, мой вопрос заключается в том, почему до того, как я получил ошибку (даже если приложение все еще работало), говоря, что данные не являются частью пользователя, когда я писал, users.data вместо users ['data ]

1 Ответ

0 голосов
/ 22 апреля 2020

По умолчанию пользователи внутри обратного вызова подписки имеют тип Объект . В Typescript вы не можете использовать users.data, когда тип 'users' является объектом. Вместо этого сделайте что-то вроде следующего.

this.service.getallUsers().pipe(first()).subscribe((users: any) => {
  this.loading = false;
  this.users = users.data; // With type of users as any, you can do this.
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...