169 похожих чатов

Почему если так сразу в onScroll передать функцию то работает

а если в onScroll поместить отдельную функцию и в эту функцию перенести debounce то debounce не срабатывает хотя console log в новой функции куда перенесли, срабатывает?

10 ответов

21 просмотр

Это не будет работать нормально. Если твой компонент перерендерится при onScroll - что произойдёт?)

Кинь скрин со вторым вариантом

Николай Варгунин
всмысле?

Ну в прямом, проведи мысленный эксперимент. Произошел onScroll, компонент перерендерился, опять onScroll, опять перерендерился и так 50 раз - че будет?

Нет, сломается дебаунс, вместо одного отложенного вызова произойдут 3. Плюс еще может произойти вызов после анмаунта. Кароч классика реакта, надо подстраиваться под лайфсайкл, погугли как сделать хук для дебаунса, там не сложно

Николай Варгунин
хорошо спасибо

А лучше не пиши это в реакте, тупо всё выкини

используй не дебаунс, а throttle

Похожие вопросы

Обсуждают сегодня

а через ESC-код ?
Alexey Kulakov
29
30500 за редактор? )
Владимир
47
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
13
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
6
в JclConsole объявлено так: function CtrlHandler(CtrlType: DWORD): BOOL; stdcall; - где ваше объявление с stdcall? у вас на картинке нет stdcall
Karagy
8
Ребят в СИ можно реализовать ООП?
Николай
33
program test; {$mode delphi} procedure proc(v: int32); overload; begin end; procedure proc(v: int64); overload; begin end; var x: uint64; begin proc(x); end. Уж не знаю...
notme
6
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта