#angular #typescript #async-pipe
Вопрос:
В чем причина этого сообщения
Argument of type '[string, { startTime: string; endTime: string; }][] | null' is not assignable to parameter of type 'Collection<unknown>'.
когда я пытаюсь использовать async
трубу в ngFor
цикле :
<div *ngFor="let slotDay of slots | async | paginate: { id: 'pagination', itemsPerPage: 3, currentPage: p }">
со слотом, являющимся:
aaa: Subject<[string, {startTime: string, endTime: string}][]> = new Subject();
Означает ли это, что Angular предполагает, что Субъект может вернуть нулевое значение? Как решить эту проблему?
Спасибо!
Комментарии:
1. Что именно
Subject<x>
здесь находится? Не могли бы вы показать код для этого? Очевидно, что существует несоответствие типов междуx
иCollections<Unknown>
2. Может кто-нибудь сказать мне, что это за массив
[string, {startTime: string, endTime: string}][]
Ответ №1:
проверьте свою трубу paginate
.Эта труба должна быть получена в качестве аргумента null или массива и возвращать массив (пустой, если хотите). можете ли вы отредактировать свой вопрос, добавив страницу разбиения на страницы?.
Вы также можете попытаться сделать свой код в два этапа
<ng-container *ngIf="slots|async as slotsAsync">
<div *ngFor="let slotDay of slotsAsync |
paginate: { id: 'pagination', itemsPerPage: 3, currentPage: p }">
...
</div>
</ng-container>
Примечание: для соглашения переменные, которые были наблюдаемыми, называются, заканчивающимися на$, лучше stols$, чем слоты (это не обязательно, но помогает отменить для всех)