Я играю с React Native и lodash's debounce.React Native: Использование lodash debounce
Использование следующего кода только заставляет его работать как задержка, а не отторжение.
<Input
onChangeText={(text) => {
_.debounce(()=> console.log("debouncing"), 2000)()
}
/>
Я хочу, чтобы консоль регистрировала debounce только один раз, если я вхожу в ввод типа «foo». Сейчас он регистрирует «debounce» 3 раза.
'onChangeText' вызывается каждый раз, когда вы меняете ввод, введя foo, вы можете вызвать функцию debounce 3 раза, поэтому поведение верное. – jmac
@jmac Я уверен, что ошибка всегда на мне, но как это сделать, я хочу, чтобы она архивировалась, так что она срабатывает только один раз и после firering ее можно снова запустить. – Norfeldt
_.debounce создает новую функцию, которая должна передаваться непосредственно как обратный вызов, но вы завернули его в дополнительную функцию и вручную создали + вызов нового экземпляра дебютной функции каждый раз, когда происходит изменение. Вы должны устранить эту дополнительную оболочку: 'onChangeText = {_. Debounce ((text) => console.log ('debouncing', text), 2000)}'. Не беспокойтесь о аргументах, они передадут их вашему обработчику. –