Объект NGRX createSelector получает среднюю строку при создании специального селектора с фильтром (обновление до NGRX 2021)

Привет, ребята, я создаю селектор, который фильтрует некоторые мысли из магазина, но когда я реализую это в селекторах, он создает строку на объекте.

Селектор работает правильно, но я вижу на нем среднюю линию, как будто что-то не на 100%.

Как я могу это исправить? Спасибо за вашу помощь!

product.selector.ts

      export const getAllProducts = createSelector(getProductsState, fromProduct.getAllProducts);

// createSelector with line in middle.
export const getProductsFilter = createSelector(
    getAllProducts,
    (products: IProduct[], filterData: string) => {

        if (filterData === '')
            return products;
        else
            return products.filter(value => value.name.includes(filterData) || value?.description.includes(filterData));

    }

);

из домашнего компонента

            const data:string='data';
      this.subscription.push(this.store.pipe(select(getProductsFilter, data)).subscribe(....

Все объекты создаются с помощью сущностей Ngrx && ngrx, обновленных до последней версии 2021 года.

Когда моя мышь на createSelector показывает это сообщение

      The signature '(s1: SelectorWithProps<object, string, IProduct[]>, projector: (s1: IProduct[], props: string) => IProduct[]): MemoizedSelectorWithProps<object, string, IProduct[], DefaultProjectorFn<...>>' of 'createSelector' is deprecated.ts(6387)
selector.d.ts(32, 4): The declaration was marked as deprecated here.

Помните, это работает, но с этой строкой что-то не так.

Маленькая картинка

1 ответ

Как сказано в комментариях выше, селекторы с реквизитами устарели. Вам просто нужно переписать свой selector как factory selector

      export const getProductsFilter = (props: { filterData: string }) => 
  createSelector(
    getAllProducts,
    (products: IProduct[]) => {
      if (filterData === '')
          return products;
      else
          return products.filter(value => value.name.includes(filterData) || value?.description.includes(filterData));
   }
);
Другие вопросы по тегам