Я использую в своем приложении React, React-Router и Redux. Моя проблема в том, что когда мой маршрут вызывает перенаправление с моей целевой страницы для единого входа в домашний компонент после аутентификации, компонент отображается до загрузки ресурсов (с корневой HTML-страницы). При обновлении страницы ресурсы загружаются, и CSS отображается правильно. Я сбит с толку, потому что with react это SPA, и я мог подумать, что активы загрузятся вместе с рендером целевой страницы.
Я пробовал следующее:
- Добавление setTimeout перед инициированием вызова API для аутентификации на моей целевой странице единого выхода
- Попытка отобразить индикатор загрузки до тех пор, пока компонент не будет полностью смонтирован (с помощью состояния компонента для управления просматриваемым содержимым.
- Я также попытался добавить setTimeout в переключение представлений в домашнем компоненте, чтобы замедлить переключение с представления загрузки на основное содержимое.
Маршрутизация и аутентификация работают правильно. Дело только в том, что активы из html загружаются после появления компонента.
Я следую той же логике перехода на домашнюю страницу через два других вызова API аутентификации, которые инициируются через мои страницы входа. Этот вызов API единого выхода запускает тот же метод, что и два других, который заканчивается
history.push('/home')
Чтобы объяснить процесс: после завершения аутентификации создатель действия нажимает на домашнюю страницу, которая монтирует компонент. Компонентное содержимое монтируется нормально, но отображается до загрузки ресурсов, что является чертовски неприятной проблемой. Я не уверен, почему это происходит только с единым знаком при перенаправлении, а не с двумя другими процессами проверки.
Опять же, я попытался добавить условный рендеринг, чтобы отображать загружаемое изображение до тех пор, пока компонент не будет смонтирован и состояние не обновится, но это не работает, поскольку я считаю, что он не принимает во внимание активы в html.
Итак, мой вопрос заключается в том, есть ли для меня лучший способ условно визуализировать индикатор загрузки, пока я не смогу убедиться, что активы загружены в html.
ОБНОВЛЕНИЕ. Я зашел в инструменты разработчика Chrome и убедился, что теги скрипта загружены. Так что в основном он не обрабатывает CSS до обновления ...