2017-05-13 4 views
1

내 앱에서 React InstantSearch 라이브러리를 성공적으로 구현했으며 필터를 상세 목록에 적용하려고합니다 (표시되는 필터가 활성 사용자와 관련이 있는지, 숨기기 그렇지 않은 것들). I는 다음 시도 :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입니다. 그것은 그것을 되 돌리는 대가로 기대합니다.

{ 
    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

감사 톤을

items는 다음과 같은 모양 객체의 배열입니다! 완벽하게 작동했습니다 : "items"배열의 형식을 잘못 해석한다는 것을 알고 있었음에 틀림 없습니다. – Jbbae