在工作中遇到一个需求,既能下拉选择,有要求可以自由输入没有的选项。
刚开始考虑使用 Select 组件,发现只有多选(mode="tags"
)的时候才能随意输入内容,但多选又不符合当前的业务需求。
在犹豫要不要自定义一个组件来实现业务需求时,发现了 AutoComplete 组件,完美实现需求。
AutoCompete 自动完成
- 适用情况
- 需要一个输入框而不是选择器
- 需要输入建议 / 辅助提示(另一种形式的选项)
- 代码示例
js
const Example = () => {
const options = ['python', 'Java'];
return (
<AutoComplete
options={options.map(item => ({ label: item, value: item }))}
/>
)
}
需要注意的是:AutoComplete 组件输入框中回填的值为 options 中的 value 而不是 label,如果存在 label 和 value 不一致的情况则需要额外处理。