婷婷同學_
2023-06-15 09:54:03
我已經將 Algolia 添加到我的 gatsby 項目中,它工作得很好但是當我想自定義搜索框時我遇到了問題我需要一些幫助在這里請我的朋友這是我第一次使用這個插件感謝你的幫助當我將搜索框組件從“react-instantsearch-dom”更改為自定義時,請給我這個錯誤任何幫助。import React from "react"import { graphql } from "gatsby"import { InstantSearch, Hits, SearchBox } from "react-instantsearch-dom"import algoliasearch from "algoliasearch/lite"import SEO from "../components/seo"import Article from "../components/article"import {Articles} from "../style/styles"import Layout from "../components/layout"const Blog = () => { const searchClient = algoliasearch( "XXXXXXX", "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" ) return ( <Layout> <SEO title="blog Page" /> <h1>Hello</h1> <InstantSearch indexName="hma" searchClient={searchClient} > <div className="right-panel"> <SearchBox /> <Articles> <Hits hitComponent={Article} /> </Articles> </div> </InstantSearch> </Layout> )}export const query = graphql` query($skip: Int!, $limit: Int!) { blogs: allMdx( filter: { fileAbsolutePath: { regex: "//data/blogs//" } } sort: { order: ASC, fields: frontmatter___date } limit: $limit skip: $skip ) { edges { node { fields { slug } frontmatter { title tags keywords image description author category } } } } }`export default Blog
1 回答

POPMUISE
TA貢獻1765條經驗 獲得超5個贊
在您<SearchBox>正在導出的組件中<CustomSearchBox>,但是,您正在導入<SearchBox>您的Blog模板,這會導致您的錯誤,因為您沒有傳遞props給您的組件。由于您正在自定義搜索組件并將其連接到 via,因此<Searchbox>您connectSearchBox需要導出/導入它。只需將其更改為:
return (
<Layout>
<SEO title="blog Page" />
<h1>Hello</h1>
<InstantSearch indexName="hma" searchClient={searchClient} >
<div className="right-panel">
<CustomSearchBox />
<Articles>
<Hits hitComponent={Article} />
</Articles>
</div>
</InstantSearch>
</Layout>
)
}
Algolia 的文檔缺乏對最常見用例的解釋,尤其是在自定義組件時,因此您必須絞盡腦汁才能找出如何進行。
添加回答
舉報
0/150
提交
取消