検索結果
最終更新: 2022年02月11日
概要
Hitsのカスタムウィジェットを作成します。
カスタムウィジェットの作成
事前に Tailwind CSS の導入が必要です。
components/custom-hits.tsximport React from 'react'; import { BasicDoc, HitsProvided } from 'react-instantsearch-core'; import { connectHits } from 'react-instantsearch-dom'; const Hits = ({ hits }: HitsProvided<BasicDoc>) => { if (!hits?.length) { return ( <p className="text-sm text-gray-500">検索結果が見つかりませんでした</p> ); } return ( <ul className="space-y-2"> {hits.map((hit) => ( <li key={hit.objectID} className="p-4 rounded-md shadow bg-white flex gap-4 relative" > <div className="absolute top-2 right-2 text-sm text-gray-400"> {hit.__position} </div> <div className="text-4xl">{hit.gender === 'male' ? '👨🏻' : '👩🏻'}</div> <div className="flex-1"> <h3>{hit.name}</h3> <p className="text-sm text-gray-500">{hit.brand}</p> <p className="text-sm text-gray-500">{hit.objectID}</p> </div> </li> ))} </ul> ); }; const CustomHits = connectHits(Hits); export default CustomHits;
カスタムウィジェットとして hits
を受け取ります。この中に現在の検索条件に一致する結果の一覧が入っているので、それを使ってUIを実装しています。
カスタムウィジェットの使用
InstantSearchタグの中に設置してください。
<CustomHits />