Всем привет.
Такое дело, что я показываю preloader(который создаётся реактом), до тех пор пока не загрузятся медиа файлы и не придут ответы с запросов
function App(props){
const [requestLoading, setRequestLoading] = useState(true);
const [mediaLoading, setMediaLoading] = useState(true);
useEffect( () => {
async function setDependences(){
/ some code
}
async function setObjects(){
/ some code
}
async function checkUser(){
/ some code
}
window.addEventListener('load', () => setMediaLoading(false) );
Promise.all([ setDependences(), setObjects(), checkUser() ])
.then( () => setRequestLoading(false) );
// eslint-disable-next-line react-hooks/exhaustive-deps
}, []);
return (
<Fragment>
<Preloader loading={ requestLoading || mediaLoading } />
<Header />
{ requestLoading === false ? <Pages /> : false }
</Fragment>
);
Pages показываю только после ответа от запросов и добавления данных в хранилище.
Проблема вот в чём:
добавления обработчика событий (load на window) происходит в основном после того как всё загрузилось, и естественно прелоадер так и не исчезнет.
Что можно сделать?
Думаю почему так происходить не нужно объяснять(медиа кешируется)