reactjs - 带有两个选项的搜索栏作为下拉菜单(ReactJS)
问题描述
假设我想在 ReactJS 中按照以下规范创建一个搜索栏(类似于 Github 的搜索栏):
在用户开始输入时的输入中,将出现 2 个下拉选项。当用户单击该选项时,将执行与其相关的操作。
我从 Material-UI 中找到了“自动完成”,并在 Google 上尝试了不同的网站,但我找不到我正在寻找的答案,我找到的那些文章都是关于具有定义值的下拉菜单。
有什么想法或参考吗?非常感谢你!
解决方案
您需要 1 个状态来保存输入值。然后基于它来渲染下面的下拉列表。您将需要一个带有可选搜索类型参数的提交处理程序,以便为下拉列表中每个选项的 onClick 事件重用。
const [keyword, setKeyword] = React.useState('')
const handleSearch = (searchType) => {
if (searchType) {
// search with type (Author or Book)
doSearch({ keyword, type })
} else {
// search with keyword only
doSearch({ keyword })
}
}
对于渲染:
<input value={keyword} onChange={e => setKeyword(e.target.value)} />
<button onClick={() => handleSearch()}>Search</button>
// render the dropdown if value existed
{Boolean(keyword) && (
<div onClick={() => handleSearch('AUTHOR')}>{keyword} - Search in Author</div>
)}
推荐阅读
- vue.js - 托管在 netlify 上的 Vue 应用程序无法在 IE 11 上加载
- reactjs - 蚂蚁设计。日期选择器。更改选择年份
- python - 找到与随机初始化数组最相似的词
- r - 由线搜索的零步停止 - R 提前停止优化
- php - 为什么我不能在 PHP 中绑定到这个套接字?
- angular - 如何使用或不使用参数来简化 http.get()
- ejabberd - 如何从 ejabberd 服务器上的 xml 中提取数据?
- php - Laravel 7 404 路径超过 2 个级别的错误
- ruby-on-rails - 在 rails 中使用带有 class_name 的范围
- mongodb - 具有不同计算的多个总和mongodb