typeahead - 有没有办法强制选择,即不允许在 TypeAHead 组件中输入自由文本?
问题描述
对于 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
推荐阅读
- r - 从 tibble 转换为 xts 后更改数据类型
- python - AttributeError:“set”对象在库存检查器中没有属性“items”Python 产品
- javascript - 将 2 位数年份范围更改为 4 位数列表
- laravel - Laravel在多态多对多中得到总和
- r - 如何按组计算变量内的比率
- reactjs - 如何停止 HashRouter 覆盖其格式的 URL
- django - 在 GraphQL Django 应用程序中变异和查询具有相同数据库架构的多个应用程序
- javascript - 为什么 it() 内部的 cypress 变量保留为分配给该变量的最后一个值,而在 it() 外部它可以正常工作?(例子)
- reactjs - 我正在尝试在我的索引页面中实现一个 react-slick 以帮助滚动(处理溢出)并且我不断收到有关“渲染”的错误
- python - 使用 np.where 分配变化的值