Reselect: как кешировать данные, записываемые в редьюсер?

Пробую перевыбрать и сразу встала проблема: опрос данных работает. Почти каждый раз, когда в редюсер поступают одни и те же данные — происходит ререндеринг компонента с использованием этих данных. Пытаюсь кэшировать эти данные селектором — не получается — ререндер все равно происходит. Что не так с этим кодом?

function getAllTickets(reducer) {
    return reducer.get('tickets');
}

export const allTicketsSelector = createSelector([getAllTickets], items => items);

Что делает reducer.get? Он может возвращать новый объект при каждом вызове.

Yury Tarabanko 03.07.2019 15:38
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Массив зависимостей в React
Массив зависимостей в React
Все о массиве Dependency и его связи с useEffect.
1
1
48
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

По умолчанию в createSelector используется сравнение поверхностей функция. Хотите провести глубокое сравнение, используйте createSelectorCreator и функцию сравнения. Пример есть в файле документация.

Другие вопросы по теме