我正在尝试以搜索形式实现反跳,前端框架是使用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"
/>

08-08 07:45