Ваша загрузка и управление состоянием на самом деле в порядке - запуск карты на пустом массиве не приведет к ошибке.
На самом деле ваша проблема связана с данными, которые вы возвращаете. Я проверил ответ URL-адреса, который вы используете, и он возвращает объект с данными и деталями подкачки, например:
{
data: [
// The gif array
],
pagination: {...},
meta: {...}
}
Использование map
для этого объекта приведет к ошибке. Массив gif находится в свойстве data
, которое вы должны использовать - например, вместо:
this.setState({gifs})
Вы можете использовать:
this.setState({gifs: gifs.data})