я через useEffect делал. кучу deps кидал. из-за этого несколько раз вызывался метод обновления стейта компонента ref.update() например. потом решил повесить обновление стейта компонента на useEffect без deps [] но при этом чтобы стейт зависел от search query. всё было хорошо, но было 2 ререндера. первый обычный и второй из-за location. в итоге психанул и решил прокидывать вручную все рефы чтобы избежать возможных лишних ререндеров.🤷
Не обращай внимание на рендеры, я уверен оно у тебя не фризило