Как показать прелодер на страницы до получения данных?
Привет.
Задача: реализовать в одном месте логику показа прелодера для страницы.
Сейчас это работает так:
в redux есть поле requestNames: [], массив содержащий строки с иминем запроса.
в методе request есть функция которая перед отправкой запроса добавят в массив строку именем запроса, а в конце , когда запрос завершится - сервер ответит, сработает функция которая этот имя запроса удалит из массива запросов.
В рендере страницы я получаю массив имен запросов текущих. И сравниваю, если имя текущего запроса совпадает с указанным именем запроса для текущей страницы то показываю прелодер.
Но щас проблема в том что изначально массив пустой и такое сравнение вернет false и будет такое поведение:
содержимое страницы мелькнет с пустыми данными затем покажется прелодер, а потом покажется содержимое страницы с полученными данными
Идея со строкой в массиве звучит как бред.
Запрос на сервер - асинхронная операция, вы вызываете ее из компонента и в нем же можете чейнить с помощью then
Сделайте стейт в компоненте isLoading: false
Перед вызовом запроса, поменяйте на true, а когда получите ответ от сервера в then/catch/finally - вырубите лоадер