代码之家  ›  专栏  ›  技术社区  ›  Johannes Klauß

重新选择:将多个参数传递给组合选择器

  •  0
  • Johannes Klauß  · 技术社区  · 7 年前

    我创建了一个选择器,它由另外两个选择器组成:

    export const getAvailableFilters = createSelector(
      getOpenedFilterMenu,
      isSaleCategory,
      (filterMenu, isSale) => {
        // .... doing stuff
      },
    );
    

    这个 getOpenedFilterMenu 以及 isSaleCategory 依赖于redux状态和组件道具,但它们依赖于不同的道具。

    getAvailableFilters(state, ownProps.streamId, activeCategory.id) TypeScript编译器抛出第一个参数的类型不匹配的错误。 当我移除 从输入选择器列表中选择选择器,TS不会抱怨。知道为什么吗?

    如何组合具有不同道具的选择器?

    0 回复  |  直到 7 年前
        1
  •  2
  •   Andrea Carraro    6 年前

    输入选择器( getOpenedFilterMenu isSaleCategory )使用与您的 reselect 选择器( state , ownProps.streamId , activeCategory.id )。似乎您的InputSelector和最终选择器需要不同的参数。

    export const getAvailableFilters = createSelector(
      (state, streamId, activeCategoryId) => getOpenedFilterMenu(state, activeCategoryId),
      (state, streamId, activeCategoryId) => isSaleCategory(state, streamId),
      (filterMenu, isSale) => {
        // .... doing stuff
      },
    );
    
    推荐文章