javascript - Typeahead 中的更改事件不起作用
问题描述
我正在尝试检查 typeahead 中的 Onchange 事件是否有效,但显然不是。这是代码:
class Search extends Component {
state = {
searchName: ''
}
handleNameChange(event) {
this.setState({searchName: event.target.value})
console.log('Name Change: ', event.target.value);
}
render() {
return (
<div class="form-group">
<Typeahead
id="basic-example"
options={this.state.hcpName}
placeholder="Search by Name..."
onChange={this.handleNameChange}
/>
</div>
)}
}
这段代码有什么问题?当我在该字段中输入时,我在控制台中看不到任何内容。
解决方案
我找到了一种直接更改状态而不是调用函数的方法。方法如下:
class Search extends Component {
state = {
searchName: ''
}
render() {
return (
<div class="form-group">
<Typeahead
id="basic-example"
options={this.state.hcpName}
placeholder="Search by Name..."
onInputChange={(searchName) => this.setState({searchName})}
/>
</div>
)}
}
基本上,我使用 onInputChange 而不是 onChange,然后直接在 typeahead 内更改状态。
推荐阅读
- visual-studio-code - 减少字母之间的 VS Code 终端空间
- laravel - laravel 电子邮件降价模板未在邮件正文中显示图像
- blazor - 为什么 Blazor 组件至少运行 2 次?
- flutter - 当 GestureDetector 的 CustomCard 包装器时 Flutter ListView 不滚动
- flutter - Flutter:是否有办法确定上下文是否具有所需的提供者或上下文是否具有 MediaQuery
- firebase - 获取一段时间内发生的 Firebase RTDB 事件对象
- node.js - 如何使用节点 js 遍历包含键值的数组
- spring-boot - 春季启动时,Firebase 消息传递数据有效负载为空
- javascript - FeathersJs 查询填充字段
- javascript - 如何在没有第二个窗口的情况下打开打印对话框?