надо понимать что функциональный компонент реакта это просто функция, которая выполняется на каждом рендере, соответственно пересоздавая все переменные, функции и проч, поэтому и существуют useRef, useMemo, useCallback, чтобы сохранить ссылку между перерендерами