我試圖在搜索表單中實現去抖動,前端框架是反應js,使用es6。在反應es6中實現去抖動
是與此相關的防抖動功能,很少有方法是:
handleSearchForm(event) {
this.setState({
searchAble: event.target.value
})
}
search() {
console.log(this.state.searchAble)
}
我使用lodash去抖輸入字段onChange
財產,並在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
來執行搜索。但它的工作不正常,它仍然多次調用搜索方法來完成類型。
我在這裏失蹤了什麼?
你approcah是錯誤的。不需要2種不同的方法。 – Ved
@Ved任何例子? – rakibtg
當然。我發佈了一個答案。 – Ved