所以我已经在我的应用程序中成功实现了React InstantSearch库,并尝试将过滤器应用于细化列表(以确保显示的过滤器与活动用户相关,并隐藏不存在的过滤器).我试过以下:
<RefinementList attributeName="organization" transformItems={items => items.filter(e => refineList.indexOf(e)>=0)} />
Run Code Online (Sandbox Code Playgroud)
其中refineList是一个简单的字符串数组(即["A","B","C"])
但是,RefinementList会一直显示所有过滤器选项,而不会应用"transformItems"函数.是不是我误解了"transformItems"是如何工作的?
关于这个主题的文档很少,所以我相信它对图书馆的许多其他用户都有帮助.
我正在尝试正确输入来自 algolia 即时搜索的连接点击列表。
我的自定义点击组件:
type Props = { hits: User[]; onSelectUser: (user: User) => void };
const SearchResults: React.FC<Props> = ({ hits, onSelectUser }) => {
return hits.map((hit: User) => (
<UserCard user={hit} onSelectUser={onSelectUser} />
));
};
export default connectHits<Props>(SearchResults);
Run Code Online (Sandbox Code Playgroud)
当我尝试使用该组件时:
<Hits hitComponent={() => (<SearchResults onSelectUser={setSelectedUser} />)}/>
Run Code Online (Sandbox Code Playgroud)
我收到一个 TS 错误,指出该组件上不存在 onSelectUser...当我忽略此 TS 错误时,我看到这些 props 在 SearchResults 组件中可用。
我应该如何正确键入我的组件以确保键入仍然正常工作?
我在我的项目中有ToggleRefinement复选框,并试图使用".ais-ToggleRefinement-checkbox {}"来设置它的样式,但似乎唯一可以改变的是使字体大小更大的复选框.颜色和背景颜色不起作用.我想更改颜色(特别是选中复选框时的颜色)以及可能的其他复选框样式,因为我在我网站的其他部分使用BlueprintJS自定义复选框,我希望样式之间保持一致他们.
有没有办法实现这个目标?