Еще вопрос наверное глупый, но все же, почему дважды рендеринтся один и тот же компонент
Если бы ты не использовал componentDidMount был бы 1 рендер, а так ты после первого рендера делаешь запрос, после которого меняешь стейт, а setState измененяя значение стейта всегда делает перерендер