У меня есть следующий селектор:
const getAllAddresses = (withStartEnd) =>
createSelector(
[getAllAddressesSelector, getStartAddressSelector, getEndAddressSelector],
(all, startAddress, endAddress) => {
if (!withStartEnd) return [...Object.values(all)];
return [startAddress, ...Object.values(all), endAddress];
}
);
Я заметил, что селектор пересчитывает каждый раз, событие, когда all
, startAddress
и endAddress
не меняются. Если я уберу вход для функции селектора, примерно так:
const getAllAddresses = (
createSelector(
[getAllAddressesSelector, getStartAddressSelector, getEndAddressSelector],
(all, startAddress, endAddress) => {
return [startAddress, ...Object.values(all), endAddress];
}
)
);
Тогда все работает как положено, и селектор не пересчитывает при каждом вызове. Похоже, я что-то упустил в концепции селектора. Любая помощь будет высоко ценится.