使用lodash的debounce()
,我试图等待1.2秒,然后再将搜索字词设置为我的应用状态。但是当我使用它时,它似乎没有运行我的函数:
onChangeText(text) {
console.log('setting');
setSearching(true);
setSearchTerm(text);
}
render(){
return(
<TextInput style={s.input}
onChangeText={() => {
_.debounce(this.onChangeText, 1200);
/*
doing just...
this.onChangeText(text)
...works
*/
}}
/>
)
}
使用setting
时,控制台日志中未显示debounce
。有什么想法吗?
答案 0 :(得分:2)
现在,您将在处理程序的每次调用上创建debounce
的新实例。
理想情况下,您应该将整个处理程序包装在debounce
中,因为反抖动创建了一个debounced
函数,该函数会延迟调用func
onChangeText={_.debounce(this.onChangeText, 1200)}