Отмена поиска в поиске 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)}
Другие вопросы по тегам