Tom*_*ett 8 javascript reactjs
我Autocomplete
在React中创建了一个组件,当您在文本框中键入时,它会显示建议完成的下拉列表.单击建议应触发回调,当文本框失去焦点时,下拉列表应消失.问题是onBlur
文本框的事件在建议的事件之前触发onClick
,所以会发生什么:
this.setState(this.getInitialState())
如何在不诉诸黑客的情况下解决这个问题的最佳方法是onBlur={setTimeout(() => this.setState(this.getInitialState()), 100)}
什么?
Tom*_*ett 14
找到了一个非常简单的解决方案:mousedown
在blur
触发文本输入之前,事件将触发被点击的结果项.此外,如果mousedown
回调调用event.preventDefault()
,它会阻止blur
事件为输入触发,但不会阻止将来click
事件一旦mouseup
发生就触发结果项.所以,简而言之,只需将此处理程序添加到结果项即可修复所有内容:onMouseDown={event => event.preventDefault()}
归档时间: |
|
查看次数: |
1614 次 |
最近记录: |