Redux 重新选择:将多个参数传递给组合选择器
我创建了一个选择器,它由另外两个选择器组成:Redux 重新选择:将多个参数传递给组合选择器,redux,react-redux,reselect,Redux,React Redux,Reselect,我创建了一个选择器,它由另外两个选择器组成: export const getAvailableFilters = createSelector( getOpenedFilterMenu, isSaleCategory, (filterMenu, isSale) => { // .... doing stuff }, ); getOpenedFilterMenu以及IsSaleCography取决于redux状态和组件属性,但它们取决于不同的属性 当我尝试像这样访
export const getAvailableFilters = createSelector(
getOpenedFilterMenu,
isSaleCategory,
(filterMenu, isSale) => {
// .... doing stuff
},
);
getOpenedFilterMenu
以及IsSaleCography
取决于redux状态和组件属性,但它们取决于不同的属性
当我尝试像这样访问选择器getAvailableFilters(state,ownProps.streamId,activeCategory.id)
时,TypeScript编译器抛出一个错误,第一个参数的类型不匹配。
当我从输入选择器列表中删除IsSaleCography
选择器时,TS不会抱怨。知道为什么吗
如何组合具有不同道具的选择器?InputSelector(getOpenedFilterMenu
和IsSaleCegory
)的调用参数与您的重新选择
选择器(状态
,ownProps.streamId
,activeCategory.id
)的参数相同。似乎InputSelector和final selector需要不同的参数
快速解决方案可能包括将InputSelector包装到和适配器函数中,以便为它们提供预期参数:
导出常量getAvailableFilters=createSelector(
(状态,streamId,activeCategoryId)=>getOpenedFilterMenu(状态,activeCategoryId),
(state,streamId,activeCategoryId)=>isSaleCategory(state,streamId),
(filterMenu,isSale)=>{
//……做事
},
);