</> Praktum

Главная / React / Ошибка запроса в состоянии компонента

Урок 11 · React

Отдельные loading и error

Загрузка, успех и ошибка — три состояния, и одно из них не должно затирать остальные.

Почему это следующий шаг

Два экрана уже переключаются. Запрос к данным добавляет ожидание и возможный сбой.

Как сделать

Заведи loading и error рядом с данными. Перед запросом включи loading и сотри прошлую ошибку. В catch запиши текст ошибки. В finally выключи loading. В разметке сначала проверь loading, потом error, и только затем рисуй список. Пустой успешный список и ошибка сети выглядят по-разному.

const [error, setError] = useState("");
const [loading, setLoading] = useState(false);

Что проверить

  • Во время запроса виден индикатор.
  • При сбое виден текст и нет ложного пустого успеха.
  • Повторный запрос стирает старую ошибку.

Попробуй

Разведи на экране три подписи: загружаю, не удалось, вот список.