reactjs - 隐藏 Material-UI 自动完成弹出窗口,直到输入文本
问题描述
我实现了一个有效的 Material-UI Autocomplete
,但是目前当您单击以选择一个项目时,它会显示除文本搜索之外的所有项目的可单击下拉列表。
我想要它,所以在首先输入内容之前不会显示下拉选项。
<Autocomplete
id="combo-box"
options={listofitems}
value={itemid}
onChange={viewitemlist}
renderInput={(params) => <TextField {...params}
label="Item Id"
variant="outlined" />}
/>
解决方案
您可以控制open
状态并告诉Autocomplete
仅在用户键入内容后打开弹出窗口。
const [open, setOpen] = React.useState(false);
return (
<Autocomplete
open={open}
onInputChange={(_, value) => {
if (value.length === 0) {
if (open) setOpen(false);
} else {
if (!open) setOpen(true);
}
}}
onClose={() => setOpen(false)}
{...}
/>
);
现场演示
推荐阅读
- c++ - 这是升级标准库锁的有效方法吗?
- ajax - 在 Wordpress 上使用 ajax 的注册表单
- javascript - 从字节数组在javascript中创建文件对象
- postgresql - postgresql 性能 - 子查询后分组
- reactjs - 你能用 Redux Toolkit + Immer 改变有效载荷吗?
- amazon-web-services - AWS CloudFormation 忽略元数据中的包
- matlab - 以相等的递增间隔生成随机数
- c++ - 错误:操作数类型 std::vector::iterator 和 __gnu_cxx::__normal_iterator 的 'operator=' 不匹配
- javascript - Symfony 5:Ux Turbo Pusher 消息重复
- java - Spring存储库如何根据字段的ID在列表中查找?