Вы получаете эту ошибку, потому что начальное состояние loading: false
.
При вашем первом рендеринге (до того, как вы установите loading: true
для вызова API) он попытается рендериться.
Таким образом let frontSprite = this.state.loading ? "Loading..." : this.state.character.sprites.front_default
потерпит неудачу, поскольку начальное значение this.state.character
равно {}
, а {}.sprites
дает неопределенное значение, приводящее к ошибке.
Чтобы решить эту проблему, вы можете сделать ранний возврат, когда character: {}
.