Поскольку вы вызываете свой API в useEffect, а также обновляете состояние в useEffect, и useEffect без зависимости вызывается каждый раз при рендеринге компонента, поэтому вот вызов l oop:
** useEffect> call API> обновление состояния с помощью setState>, поскольку состояние обновлено, вызовите useEffect **
Таким образом, вам нужно добавить зависимость для useEffect, которая не изменяется с помощью setState. И затем, всякий раз, когда значение зависимого изменяется, будет вызываться API.
Кстати, лучше не реализовывать вызов API в useEffect. Скорее вам следует попробовать использовать readux и thunk.