Как преобразовать последовательный селектор ngRx в логический возврат?

#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 вместе.