Керування станом · Senior · Запитання 13 з 75

Що потрібно мемоізованому селектору з createSelector, щоб він був ефективним з аргументами?

const selectByCategory = createSelector(
  [(s) => s.products, (s, category) => category],
  (products, category) => products.filter((p) => p.category === category),
);

Пояснення

Кеш за замовчуванням зберігає останні входи, тому чергування аргументів у кількох компонентах ('books', 'toys') щоразу перераховує результат. Створюйте селектор на компонент (useMemo(makeSelector, [])) або налаштуйте більший кеш (weakMapMemoize - за замовчуванням у Reselect 5).

Де почитати

Помилка в запитанні

Керування станом · Senior · запитання 13

Перевірте себе

Пройдіть тест Керування станом · Senior: запитання й варіанти перемішуються, а наприкінці - розбір помилок.

Пройти цей тест