Как реализовать прелоадер перед загрузкой React-приложения?

  • 10 сентября 2023 г. 13:16
Ответы на вопрос 1
Чтобы избежать предупреждения, связанного с использованием UNSAFE_componentWillReceiveProps, вы можете использовать хук useEffect для имитации поведения componentDidMount.

Вот как переписать ваш код для исправления этой ошибки:

```javascript
import { BrowserRouter, Routes, Route } from 'react-router-dom';
import { useState, useEffect } from 'react';
import Homepage from './pages/Homepage';
import Loading from './components/Loading';
import './css/_App.css';

function App() {
  const [isLoading, setIsLoading] = useState(true);

  useEffect(() => {
    setTimeout(() => { // имитируем задержку загрузки
      setIsLoading(false);
    }, 2000); // установите здесь реальное время задержки
  }, []);

  return (
    <>
      {isLoading ? (
        <Loading />
      ) : (
        <BrowserRouter>
          <Routes>
            <Route path='/' element={<Homepage />} />
          </Routes>
        </BrowserRouter>
      )}
    </>
  );
}

export default App;
```

В этом примере я использовал setTimeout для имитации загрузки с задержкой в 2 секунды. Вы можете изменить это значение на свое усмотрение. Когда состояние isLoading станет false, будет отображаться ваше приложение.
Похожие вопросы