Matematicamente,

$Estado + efeitos = Interface$, onde $Interface$ é React/JS/Angular/Bootstrap/qualquer outro framework.

Desta forma, se o estado (useState) não ta suprindo o que você precisa implementar, então use efeitos (useEffect). É simples assim.

Bônus: da uma olhada no use, um hook que pelo que já vi comentando (posso estar errado), pode substituir o useEffect: https://react.dev/reference/react/use