Наличие отклоненной версии вашей функции полезно, когда любое событие DOM прикреплено.Это уменьшает количество вызовов этой функции до минимума и, таким образом, повышает производительность.
Итак, вы можете сделать это:
import _ from 'lodash';
constructor(props) {
super(props)
this.onChangeDebounce = _.debounce(e => this.change(e, items), 300);
}
render() {
...
onChange={e => this.onChangeDebounce(e)}
...
}
В этом случае я перехожу к debounce
только два параметра:
- Функция, которая должна быть ограничена по скорости
- Ограничение скорости в миллисекундах, т. Е. Время ожидания до запуска функции.
Или вы можете использовать событие onBlur, которое доступно для любого элемента DOM.Событие onBlur происходит всякий раз, когда вход теряет фокус.Другими словами: когда вы удаляете курсор изнутри ввода, он теряет «фокус» или становится «размытым».
Предостережение заключается в том, что у него нет ассоциированного события, поэтому для достиженияесли хотите, вы можете обновить состояние с помощью значения поля и в onBlur получить это значение из состояния.
Здесь у вас есть скрипка , делающая это.