antd Select 如何隐藏已经选择的选项
时间: 2024-03-11 20:47:49 浏览: 374
你可以通过设置 `mode` 属性为 `tags`,并且使用 `filterOption` 属性来实现隐藏已经选择的选项。
具体的做法是,在 `Select` 组件中设置 `mode="tags"`,并在 `filterOption` 属性中自定义过滤函数。自定义过滤函数的作用是,当用户输入一个选项时,判断该选项是否已经被选择过,如果已经被选择过,则返回 `false`,表示该选项不应该显示在下拉菜单中。
以下是一个示例代码:
```
import { Select } from 'antd';
const { Option } = Select;
const selectedValues = ['Apple', 'Banana', 'Orange'];
function filterOption(inputValue, option) {
return !selectedValues.includes(option.value);
}
function MySelect() {
return (
<Select
mode="tags"
filterOption={filterOption}
style={{ width: '100%' }}
>
<Option value="Apple">Apple</Option>
<Option value="Banana">Banana</Option>
<Option value="Orange">Orange</Option>
<Option value="Pear">Pear</Option>
<Option value="Grape">Grape</Option>
</Select>
);
}
```
在上面的示例中,`selectedValues` 数组存储了已经选择的选项。`filterOption` 函数接收两个参数,分别是用户输入的值和当前选项。函数返回值为布尔值,表示该选项是否应该显示在下拉菜单中。在函数中,我们通过 `includes` 方法来判断当前选项是否已经被选择过。如果已经被选择过,则返回 `false`,表示该选项不应该显示在下拉菜单中。
阅读全文