我正在尝试以搜索形式实现反跳,前端框架是使用es6的react js。
与此反跳功能相关的几种方法是:
handleSearchForm( event ) {
this.setState( {
searchAble: event.target.value
} )
}
search() {
console.log( this.state.searchAble )
}
我在输入字段
onChange
属性中使用lodash防反跳,并在onKeyUp
属性中设置状态,如下所示:<input type="text" className="form-control input-sm" placeholder="Search item by SKU, Price, Title etc..."
onKeyUp={ this.handleSearchForm.bind( this ) }
onChange={
_.debounce( () => {
this.search( this )
}, 2050 ).bind( this )
}
/>
因此,想法是在keyup上将其设置为状态“ searchAble”,而onChange则将调用方法
search
进行搜索。但是它不能正常工作,它仍然多次调用搜索方法来完成键入操作。我在这里想念什么?
最佳答案
https://github.com/nkbt/react-debounce-input
请转到存储库并按照说明进行操作。我认为这可能会帮助您并记住一件事
“单击Enter键将立即发送当前值的通知。默认启用。通知值遵循与去抖动通知相同的规则,因此,如果Length较小,则minLength-空值”将被发回。
示例代码
<DebounceInput
type="number"
onChange={event => this.setState({value: event.target.value})}
placeholder="Name"
className="user-name"
/>