Ionicのion-searchbarでAlgolia Instantsearchの検索を実行する #AlgoliaJP
この記事は、「Algolia Advent Calendar 2020」の投稿です。 このサイトの検索フォームは、Ionicのion-searchbarタグを使って実装しています。 SSG / SSRを実行するNext. […]
広告ここから
広告ここまで
目次
この記事は、「Algolia Advent Calendar 2020」の投稿です。
このサイトの検索フォームは、Ionicのion-searchbar
タグを使って実装しています。
SSG / SSRを実行するNext.jsを使っている関係上、@ionic/react
ではなく@ionic/core
を直接使っているのですが、ion-searchbar
にAlgoliaの検索を仕込むのにちょっとてこずったので、その時のコードを紹介します。
export const IonicSearch = connectSearchBox(({
currentRefinement,
refine,
}) => {
const handleInput = useCallback((event) => {
refine(event.target.value)
}, [refine])
return (
<ion-searchbar
value={currentRefinement}
onInput={handleInput}
placeholder="WP Kyoto"
/>)
})
connectSearchBox
を利用し、入力された値はcurrentRefinement
を利用して表示します。今回は入力毎に検索を実行するので、onInput
のイベントを拾って、refine
を実行させるようにしました。
あとはこのコンポーネントを、InstantSearch
の子・孫要素として配置すればOKです。
今回の例ではion-searchbar
でしたが、各UIライブラリの検索フォームを使いたい場合にも応用できると思います。