Комментарии 6
Стоит заметить, что в будущих версиях реакта будет доступен встроенный хук – useDeferredValue, который заменит этот кастомный useDebounce
Маленькое уточнение: в вашей реализации есть небольшой изъян в виде возможной гонки. Скажем пользователь набрал "а", пошёл запрос, пользователь набрал "б", пошёл ещё запрос. Второй запрос пришёл раньше первого, первый пришёл вторым. Получаем ерунду.
Нюанс второй: не учтён вариант когда запрос завершился тогда, когда компонент уже умер. Получаем setState для размонтированного компонента. Warning. Тоже мелочь, но всё же.
Спасибо за перевод! Интерсно!
Проблема со всем этим убогим копипастом в том, что это по сути не дебаунс, а просто отложенное обновление значения.
Настоящий дебаунс позволяет в отложенном режиме вызывать функцию.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Debouncing с помощью React Hooks