是否有一种方法可以强制选择,即不允许在TypeAHead组件中输入自由文本?

问题描述 投票:0回答:1

对于react-bootstrap-typeahead,是否有一种方法可以强制从下拉列表中进行选择,即不允许在TypeAHead组件中输入自由文本?

typeahead react-bootstrap-typeahead
1个回答
0
投票

听起来您正在尝试使预输入更像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

© www.soinside.com 2019 - 2024. All rights reserved.