【发布时间】:2021-05-20 09:10:19
【问题描述】:
现在我的搜索功能是我必须单击搜索图标才能显示结果,所以我想将其更改为实时搜索。当我在输入中输入名称时,它会自动启动为我显示用户卡
这是我的以下代码:
const [searchQuery, setSearchQuery] = useState("");
const handleChange = (event) => {
event.preventDefault();
setSearchQuery(event.target.value);
};
const handleSubmit = async (e) => {
e.preventDefault();
const res = await axios.get(
`/api/v1/search/users/invite/${searchQuery}/${teamId}`
);
setInvitees(res.data[0]);
setShowInvitees(!showInvitees);
};
useEffect(() => {
if (searchQuery === "") {
setInvitees([]);
}
}, [searchQuery]);
<form onSubmit={handleSubmit}>
<div className="invitees-search">
<Button
className="input invitees--search-icon"
style={{ color: "white", backgroundColor: "#00B790" }}
type="submit"
>
<SearchIcon />
</Button>
<input
className="invitees--search_input"
type="text"
name="name"
onChange={handleChange}
placeholder="Name"
aria-label="Search bar"
pattern="^[a-zA-Z0-9 ]+"
required
/>
</div>
</form>
当我的搜索查询长度 >= 2 个字母时,如何使其自动填充?
【问题讨论】:
-
不要忘记使用
debounce优化您的代码,如下所示:stackoverflow.com/questions/23123138/…
标签: javascript reactjs react-hooks