#angular #typescript #ngrx #ngrx-store
#angular #typescript #ngrx #ngrx-хранилище
Вопрос:
В настоящее время я использую приведенный ниже фильтр для возврата некоторого списка данных в пределах заданного диапазона дат. На самом деле, в компоненте я проверил только длину списка и в соответствии с этим определил значение True и False для переменной. Мне нужно знать, как преобразовать это прямое логическое значение возврата, и правильно ли это?
export const selectModel = (planedDate: Date) => createSelector(
selectDrugReviews,
(reviews: ReviewModel[]) => reviews.filter(date => date.startDateTime.getTime() <= planedDate.getTime() amp;amp; (date.endDateTime !== undefined ? date.endDateTime.getTime() >= planedDate.getTime() : true))
);
Ответ №1:
Попробуйте это
export const selectModel = (planedDate: Date) => createSelector(
selectDrugReviews,
(reviews: ReviewModel[]) => reviews.map((date) => date.startDateTime.getTime() <= planedDate.getTime() amp;amp; (date.endDateTime !== undefined ? date.endDateTime.getTime() >= planedDate.getTime() : true))
);
Комментарии:
1. Я попробую это.. Можно ли также удалить фильтр? Я пробую, возвращается наблюдаемый <логический []> ?
2. могу ли я изменить это на Observable<boolean> , есть ли какие-либо доступные данные, нужно вернуть true?
3. @uma Я не уверен, что вы имеете в виду, вы хотите вернуть Observable или он возвращает Observable?
4. @uma индекс массива 0 означает, что вы заботитесь только о первом элементе массива, если он соответствует, он вернет true, в противном случае false .
5. Возврат зависит от условий, если они удовлетворяют возвращению true, иначе false .
Ответ №2:
вам нужно использовать канал map
, а не фильтр.
map((date) => <condition here>));
Комментарии:
1. является ли этот способ отображением только истинных значений? (Мне нужно вернуть только True, если есть какая-либо одна кодировка- true)
2. тогда фильтр подходит для вас. вы можете использовать map и filter вместе.