【发布时间】:2019-05-26 09:03:05
【问题描述】:
我有以下选择器:
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];
}
)
);
然后一切都按预期工作,并且选择器不会在每次调用时重新计算。似乎我在选择器概念中遗漏了一些东西。任何帮助将不胜感激。
【问题讨论】:
标签: javascript reactjs redux react-redux reselect