Приложение "Звёздные войны". Ч3


Пока загружаются данные с сервера, страница с значком картинки, которая ещё не загрузилась, выглядит не очень привлекательно. Хорошее приложение не отображает элементы для которых пока нет данных. Для таких случаев используется индикатор загрузки.

Подобрать и настроить подходящий индикатор можно на сайте https://loading.io/

Создаём компонент spinner, копируем в него полученный html и css код, проверяем как спиннер смотрится на месте элемента, который он будет временно заменять.

Логика индикатора загрузки

В стейт компонента random-planet добавляем свойство loading и присваиваем ему значение true, потому что как только компонент добавляется, он тут же начинает загружаться.

В функцию  render() компонента random-planet добавляем  условие
    
    if(loading) {
      return (<Spinner />)
    }

Узнать, что изображение загрузилось, позволит функция onPlanetLoaded

  onPlanetLoaded = (planet) => {
    this.setState({ 
      planet,
      loading: false
    });
  };