У меня есть весеннее загрузочное угловое приложение. и я делаю разбиение на страницы на стороне сервера. Мое приложение работает, но получает консольную ошибку на машинописном тексте.
список пользователей.component.ts :
userList(): void{
this.userService.pagination(20, 1).pipe(
tap(users => this.setUsers(users.content)),
map((userData: UserData) => this.dataSource = userData)).subscribe();
}
setUsers(content: any){
this.users = content;
}
onPaginateChange(event: PageEvent){
let page = event.pageIndex;
let size = event.pageSize;
page = page + 1;
this.userService.pagination(size, page).pipe(
map((userData: UserData) => this.dataSource = userData)).subscribe();
}
пользователь-service.service.ts :
public pagination(pageSize: number, currentPage:number): Observable<UserData>{
let params = new HttpParams();
params = params.append('currentPage', String(currentPage));
params = params.append('pageSize', String(pageSize));
return this.http.get<UserData>(this.usersUrl, {params})
}
user-data.ts :
export class UserData {
content!: User[];
pageable!: {
sort: {
empty: boolean,
sorted: boolean,
unsorted: boolean
},
offset: number,
pageNumber: number,
pageSize: number,
paged: boolean,
unpaged: boolean
};
last!: boolean;
totalPages!: number;
totalElements!: number;
size!: number;
number!: number;
sort!: {
empty: boolean,
sorted: boolean,
unsorted: boolean
};
first!: boolean;
numberOfElements!: number;
empty!: boolean;
}
Что вызывает эту ошибку, и я не знаю, как это исправить.
Основываясь на поставленном вами вопросе и информации, я должен предположить.
Похоже, что ответ не соответствует вашему классу UserData. Эта ошибка возникает, если вы пытаетесь получить доступ к свойству неопределенного объекта.
const users = null;
users.content // Error will be thrown
Но я заметил распространенное непонимание ввода вашего http-ответа классу. Вы получаете типичный Javascript.Object, а не экземпляр UserData. Вот почему я большую часть времени использую интерфейсы на Http.Responses. Если вам нужны экземпляры UserData, вы должны использовать новые UserData (ответ) и назначать их каждому свойству.