Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 自定义typeahead组件未捕获选择-反应_Javascript_Reactjs - Fatal编程技术网

Javascript 自定义typeahead组件未捕获选择-反应

Javascript 自定义typeahead组件未捕获选择-反应,javascript,reactjs,Javascript,Reactjs,我正在尝试在React中构建自定义的typeahead组件,但是在捕获所选项目时遇到了问题。当输入元素处于焦点时,我会用一个下拉列表(div和id=“autocompleteResultsContainer”)显示结果,每当它处于模糊模式时,下拉列表就会从视图中删除。当我单击下拉组件时(这是与输入分离的元素,单击事件不会被捕获,下拉组件也会从视图中删除。如何在结果容器中捕获单击事件?我尝试使用设置超时,但这并不理想,因为它会在结果之前造成明显的延迟是隐藏的,或者在用户按住单击键时不处理任何情况。

我正在尝试在React中构建自定义的typeahead组件,但是在捕获所选项目时遇到了问题。当
输入
元素处于
焦点
时,我会用一个下拉列表(
div
id=“autocompleteResultsContainer”
)显示结果,每当它处于
模糊
模式时,下拉列表就会从视图中删除。当我单击下拉组件时(这是与
输入
分离的元素,
单击
事件不会被捕获,下拉组件也会从视图中删除。如何在结果容器中捕获
单击
事件?我尝试使用
设置超时
,但这并不理想,因为它会在结果之前造成明显的延迟是隐藏的,或者在用户按住单击键时不处理任何情况。如果可能,我还希望避免在整个应用程序中添加事件侦听器

showAutocompleteResults(showAutocompleteResults) {
    this.setState({ showAutocompleteResults: showAutocompleteResults })
}

<div id="autocompleteContainer">
   <input type="text" onKeyUp={(event) => this.getDropdownValues(event)} onFocus={() => this.showAutocompleteResults(true)} onBlur={() => this.showAutocompleteResults(false)} placeholder="Search for tags"></input>
    {this.state.showAutocompleteResults
         ? <ul id="autocompleteResultsContainer">
           {this.state.autocompleteResults.map((r) => (
               <li key={r + "DropdownItem"} onClick={(event) => this.handleDropdownTagSelection(event)}>{r}</li>
           ))}
       </ul>
     : null}
<div>
showAutocompleteResults(showAutocompleteResults){
this.setState({showAutocompleteResults:showAutocompleteResults})
}
this.getDropdownValues(event)}onFocus={()=>this.showAutocompleteResults(true)}onBlur={()=>this.showAutocompleteResults(false)}placeholder=“搜索标记”>
{this.state.showcompleteresults
?
    {this.state.autocompleteResults.map((r)=>(
  • this.handleDropdownTagSelection(事件)}>{r}
  • ))}
:null}