我正在使用antd
中的一个可搜索的选择组件,我需要检测搜索是否失败(在这种情况下,我需要添加一个UI按钮)。但是,我似乎在antd
文档中找不到任何支持它的东西。
我试过这个:
<Select dropdownAlign={{ offset: [-15, 4] }}
showSearch
placeholder="Select a medicine"
suffixIcon={
// <HiOutlineArrowDown color="#29BCC1" />
<img src={arrowdropdown} alt />
}
onChange={(e) => handleChange(e, "select", "medicine")}
onSelect={(e) => setMed(e)}
filterOption={(input, option) => {
if(!(option?.children?.toLowerCase()?.startsWith(input?.toLowerCase()))) {
console.log("no result")
}
return option?.children?.toLowerCase()?.startsWith(input?.toLowerCase())
}}
value={med}
className="c_select"
>
{props.medicine.data?.map((med, index) => (
<Option value={med.id} key={index}>
{med.name}
</Option>
))}
</Select>
这是可行的,但问题是console.log("no result")
记录大约1000次,这是非常低效的。所以,如果有更好的方法来解决这个问题,请指导我。谢谢。
注:我正在使用antd: 4.21.3
和react: 18.2.0
。
1条答案
按热度按时间gblwokeq1#
好了,我在Select组件中添加了一个
onSearch
prop,并传入了handleMedicineSearch
函数,函数如下:该行:
if(filteredOptions.length === 0)
用于检测搜索是否不成功。