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ライブラリの検索フォームを使いたい場合にも応用できると思います。

    広告ここから
    広告ここまで
    Home
    Search
    Bookmark