Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/apache/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Redux 重新选择:将多个参数传递给组合选择器_Redux_React Redux_Reselect - Fatal编程技术网

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)=>{ //……做事 }, );