當我將更多選擇器組合在一起時,我發現我正在重新定義選擇器的定義位置。例如,如何在組合選擇器時忽略重新選擇器的排序
export const selectNav = state => state.nav;
export const selectPage = state => state.page;
export const selectNavAndPage = createSelector([
selectNav,
selectPage,
], (nav, page) => {
});
export const selectFoo = state => state.foo;
export const selectNavAndPageAndFoo = createSelector([
selectNavAndPage,
selectFoo,
], (navAndPage, foo) => {
});
這是一個簡單的例子,但我不能低於selectNavAndPageAndFoo定義selectNavAndPage。隨着更多的選擇器組合和選擇器的選擇器組合,我需要確保在使用它們之前,所有的子選擇器都在頂部定義。
有沒有一些方法來創建這些選擇器,使排序無關緊要?
不幸的是,在我的示例中將const更改爲var將不起作用。該變量會被提升,但是當createSelector()被調用時,那麼被傳入的未定義變量將被傳入。 – epikhighs