react-bootstrap-typeahead - React bootstrap typeahead clearButton图标(X)不会出现在单个选择中
问题描述
我尝试为单个选择输入选择 clearButton 道具。但是它没有按预期工作。默认选择的输入不会出现清除 (x) 图标。它仅在发生事件更改时出现,即如果我选择了其他输入。我的问题是手动删除输入不会触发所选值的更改。任何指针将不胜感激。
<Typeahead
clearButton
defaultInputValue={props.city}
options={props.cityOptions}
onChange={(selected) => handleCityFieldChange(selected[0], props)}
placeholder="Choose a city"
/>
这是 handleCityFieldChange 函数:
handleCityFieldChange = (selected, props) => {
const newFieldValues = Object.assign({}, props.fieldValues, {"city": selected});
props.onChange(newFieldValues);
};
解决方案
使用defaultSelected
,而不是defaultInputValue
:
<Typeahead
clearButton
defaultSelected={props.city}
options={props.cityOptions}
onChange={(selected) => handleCityFieldChange(selected[0], props)}
placeholder="Choose a city"
/>
清除按钮仅在有选择时出现。defaultInputValue
设置value
输入的 ,而不实际选择选项,这就是您没有看到按钮的原因。
注意:defaultSelected
需要一个数组,所以如果props.city
是一个对象,你需要传递[props.city]
.
推荐阅读
- c# - StreamWriter 和 StreamReader 以及数组问题
- java - 如何从 Java 中的 Unirest 响应中获取原始 JSON 文本
- python - 3DS Max Python 脚本
- javascript - 试图有一个窗口,其中七人行可见而其余部分被隐藏 - 图像是 div 标签中的 spritesheet.png
- c++ - 在随机位置生成固定数量的 1
- sql-server - 使用所有步骤的自动参数执行存储过程 iIn SQL Server 代理
- javascript - Knex JS“或”在 .where() 内?
- json - JSONDecodeError:期望值:使用 Json 的第 1 行第 1 列
- azure - Azure Blob 创建未触发 Azure 数据工厂事件触发器
- c# - 如何在基于 db 的多线程通知/电子邮件发件人中减少 CPU 使用率