и React.js
Задача: мне нужно на hover показывать перевод слова, для этого eventListener обращается к АПИ словаря. Мне бы хотелось делать запросы, только если юзер оставляет мышку на слове в течение какого-то времени.
Я попробовала в MouseEnter делать setTimeout, а в MouseLeave очищать его:
MouseEnter:
if (hintText === "") {
filterTimer = setTimeout(() => {
positionHint();
getTranslation(props.word).then(data => setHintText(data[0]));
}, 1000);
MouseLeave:
if (filterTimer !== null) {
clearTimeout(filterTimer);
}
Видимо, я что-то упускаю и в Network я всё равно вижу запросы, даже если мышка уже не там. Как можно избежать обращения к API, если мышки уже нет на элементе? Спасибо:)
Попробуй каждые 100мс записывать в счётчик с помощью колбэка. А затем, если накопилось определенное время - делать обращение к апи. Так же можно запомнить на каком элементе ты считал - и при уводе мышки с этого элемента - очистить счетчик
Обсуждают сегодня