猿问

如何在react中input-text设置一个定时器?

我有一个搜索字段。现在它搜索每个键控。所以如果有人输入“Windows”,它将使用onChange方法进行搜索:“W”,“Wi”,“Win”,“Wind”,“Windo”,“Window”,“Windows”

我想要一个延迟,所以只有当用户停止输入200 ms时,才会进行搜索。

原代码

handleChange: function(event) {

  var newVal = event.target.value;

  this.setState({value: newVal});

    // 能否在这里加个定时器,判断大于200ms后再进行下面的方法

  this.doSearch();

},

doSearch: function() {

  someFunction(this.state.value);

},


.....


<input id="search-input" className={active} placeholder="Type to search" value={inputValue}   onChange={this.handleChange} />


慕的地8271018
浏览 511回答 1
1回答

拉丁的传说

延迟是可以的,先清定时器,在加定时器就可以handleChange: function(event) {&nbsp; &nbsp; var newVal = event.target.value;&nbsp; &nbsp; this.setState({value: newVal});&nbsp; &nbsp; this.timer && clearTimeout(this.timer);&nbsp; &nbsp; this.timer = setTimeout(() => {&nbsp; &nbsp; &nbsp; &nbsp; this.doSearch();&nbsp; &nbsp; }, 200)}
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答