Я отлаживал проблему с устаревшими данными и отследил ее до useEffect, в котором отсутствовали три зависимости, которые ему явно были необходимы. Эффект ссылался на значение фильтра, номер страницы и порядок сортировки, а в массиве зависимостей перечислялся только фильтр...
Я отлаживал проблему с устаревшими данными и отследил ее до useEffect, в котором отсутствовали три зависимости, которые ему явно были необходимы. Эффект ссылался на значение фильтра, номер страницы и порядок сортировки, а в массиве зависимостей было указано только значение фильтра. Классическая проблема устаревшего закрытия, из-за которой возникают ошибки, которые сводит с ума, потому что код на первый взгляд выглядит правильно и проходит все ручные тесты, которые вы выполняете для него в данный момент.
Исправляя это, я прокрутил до другого useEffect в том же файле. У этого была противоположная проблема. Перечислено пять зависимостей, но по крайней мере две из них были объектами, которые воссоздавались при каждом рендеринге, что означает, что эффект срабатывал постоянно, гораздо чаще, чем нужно, выполняя работу, которая должна была выполняться один или два раза за каждое взаимодействие с пользователем, но вместо этого выполнялась десятки раз в секунду во время определенных взаимодействий, незаметно снижая производительность, что никогда не было заметно при беглом взгляде на код.
Два хука useEffect. Один файл. Одна явно недоопределена, отсутствуют зависимости, необходимые для правильной работы. Один явно переопределен, включая зависимости, из-за которых он срабатывал гораздо чаще, чем предполагалось. Ни ого-го