2017-05-13 75 views
1

因此,我已經在我的應用中成功實施了React InstantSearch庫,並且正在嘗試將篩選器應用於細化列表(以確保顯示的篩選器與活動用戶相關,並隱藏那些不是)。我已經嘗試了以下:React InstantSearch RefinementList transformItems not working

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

其中refineList是字符串的一個簡單的陣列(即,[ 「A」, 「B」, 「C」])

然而RefinementList不斷顯示所有的過濾器選項,而不對其應用「transformItems」函數。難道我誤解了「變革項目」的工作原理嗎?

文檔在這個主題上相當稀少,所以我確信它對圖書館的許多其他用戶會有幫助。

回答

5

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)} 
/> 
+2

由於一噸!它的工作完美:)應該知道這是我誤解了「項目」數組的格式。 – Jbbae