2017-05-13 13 views
1

私はReact InstantSearchライブラリを自分のアプリケーションに実装しており、フィルタを詳細リストに適用しようとしています(表示されているフィルタがアクティブなユーザに関連していることを確認し、hideそうでないもの)。私は以下試みた:React InstantSearch RefinementList transformItemsが動作しない

refineListはRefinementListはすべてを示す保持しかしストリングの単純な配列(すなわち、[ "A"、 "B"、 "C"])

ある

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

"transformItems"関数が適用されていないフィルタオプション。 "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

関連する問題