antd4.x select组件filterOption属性,同时搜索label和value
PS:若有大佬实现了更优雅的方法,还望告知一下小弟,不胜感激!
const options = [{ label: '中国', value: 'CN' }]
<Select
getPopupContainer={(triggerNode) => triggerNode.parentElement}
allowClear
style={{ ...style }}
disabled={disabled}
value={value}
options={options}
onChange={(v) => {
onChange?.(v);
}}
placeholder="请选择国家"
showSearch
filterOption={(input, option) => {
const pattern = new RegExp('[\u4E00-\u9FA5]+');
// 判断是否是中文
if (pattern.test(input)) {
return option?.label ? option?.label?.indexOf(input) > -1 : false;
} else {
return option?.value
? option?.value
.toLocaleUpperCase()
.indexOf(input.toLocaleUpperCase()) > -1
: false;
}
}}