Algolia React 默认值及运行问题
Algolia React default value and operation problem
我在我的 React 应用程序中使用 Algolia 进行自动完成。但是我在开发过程中遇到了一些问题:
- 如果我不输入任何内容,自动完成功能已经有标准匹配,如何关闭它?
- 我怎样才能最小化操作,因为现在 1 个字符需要 1 个操作,可能还有类型延迟?
我正在使用 algoliasearch/lite
和 react-instantsearch-dom
软件包。
React InstantSearch 不提供开箱即用的选项。您必须实施您的 searchClient
版本才能在空状态下中止请求。您可以在 documentation.
中找到指南
您不能开箱即用。你可以自己实现它。这种模式称为去抖动。在 documentation.
中还有一个专门的部分。
- 根据 documentation 中的示例代码,您可以检查搜索框是否为空。然后仅当
currentRefinement
不为空时才渲染命中:
import { connectAutoComplete } from 'react-instantsearch-dom';
const Autocomplete = ({ hits, currentRefinement, refine }) => (
<ul>
<li>
<input
type="search"
value={currentRefinement}
onChange={event => refine(event.currentTarget.value)}
/>
</li>
//Render only if currentRefinement not empty
{currentRefinement && (
hits.map(hit => (
<li key={hit.objectID}>{hit.name}</li>
))
)}
</ul>
);
const CustomAutocomplete = connectAutoComplete(Autocomplete);
- 可以通过使用
SearchBox
示例代码 documentation 来实现去抖动
我在我的 React 应用程序中使用 Algolia 进行自动完成。但是我在开发过程中遇到了一些问题:
- 如果我不输入任何内容,自动完成功能已经有标准匹配,如何关闭它?
- 我怎样才能最小化操作,因为现在 1 个字符需要 1 个操作,可能还有类型延迟?
我正在使用 algoliasearch/lite
和 react-instantsearch-dom
软件包。
React InstantSearch 不提供开箱即用的选项。您必须实施您的
searchClient
版本才能在空状态下中止请求。您可以在 documentation. 中找到指南
您不能开箱即用。你可以自己实现它。这种模式称为去抖动。在 documentation.
中还有一个专门的部分。
- 根据 documentation 中的示例代码,您可以检查搜索框是否为空。然后仅当
currentRefinement
不为空时才渲染命中:
import { connectAutoComplete } from 'react-instantsearch-dom';
const Autocomplete = ({ hits, currentRefinement, refine }) => (
<ul>
<li>
<input
type="search"
value={currentRefinement}
onChange={event => refine(event.currentTarget.value)}
/>
</li>
//Render only if currentRefinement not empty
{currentRefinement && (
hits.map(hit => (
<li key={hit.objectID}>{hit.name}</li>
))
)}
</ul>
);
const CustomAutocomplete = connectAutoComplete(Autocomplete);
- 可以通过使用
SearchBox
示例代码 documentation 来实现去抖动