Отмена поиска в поиске onChangeText()
Использование Лодаша 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
, Есть идеи?
1 ответ
Решение
Прямо сейчас вы создаете новый экземпляр debounce
на каждый вызов обработчика.
В идеале вы должны обернуть весь обработчик в debounce
так как debounce создает debounced
функция, которая задерживает вызов func
onChangeText={_.debounce(this.onChangeText, 1200)}