对于react-bootstrap-typeahead,是否有一种方法可以强制从下拉列表中进行选择,即不允许在TypeAHead组件中输入自由文本?
听起来您正在尝试使预输入更像select
字段。如果是这样的话,可以做一些事情。您可以将输入设为只读以禁用输入。您还需要更改过滤条件,以使所有选项都显示在菜单中,即使有选择:
<Typeahead
...
filterBy={(option, state) => {
if (state.selected.length) {
return true;
}
return option.label.toLowerCase().indexOf(state.text.toLowerCase()) > -1;
}}
inputProps={{
readOnly: true,
}}
/>
尽管您可能想添加一些其他样式以使只读输入看起来更具交互性,但这应该能带给您大部分的便利。
这是一个有效的示例:https://codesandbox.io/s/rbt-select-example-nfc5q?file=/src/index.js