React InstantSearch RefinementList transformItems无效

时间:2017-05-13 09:18:21

标签: javascript reactjs algolia react-instantsearch

所以我在我的应用程序中成功实现了React InstantSearch库,并尝试将过滤器应用于细化列表(以确保显示的过滤器与活动用户相关,并隐藏那些不是&#39 ; T)。我尝试过以下方法:

<RefinementList attributeName="organization" transformItems={items => items.filter(e => refineList.indexOf(e)>=0)} />

其中 refineList 是一个简单的字符串数组(即[&#34; A&#34;,&#34; B&#34;,&#34; C&#34;])< / p>

然而,RefinementList不断显示所有过滤器选项,而没有&#34; transformItems&#34;适用于它的功能。是不是我误解了&#34; transformItems&#34;作品?

关于这个主题的文档很少,所以我确信它对图书馆的许多其他用户都有帮助。

1 个答案:

答案 0 :(得分:6)

transformItems函数有一个参数:items。它期望回归它。

items是具有以下形状的对象数组:

{
  label: string,
  value: array<string>,
  count: number,
  isRefined: bool,
}

要根据字符串数组删除细化,可以执行以下操作:

const refineList = ['A', 'B'];
<RefinementList
    attributeName="organization"
    transformItems={items => items.filter(e => 
        refineList.indexOf(e.label) >= 0)}
/>