Решено: страница перезагрузки маршрутизатора не найдена

Основная проблема, связанная с тем, что страница перезагрузки React Router не найдена, заключается в том, что когда пользователь обновляет страницу, браузер попытается сделать запрос на сервер для текущего URL-адреса. Однако, поскольку React Router является маршрутизацией на стороне клиента, для URL-адреса нет соответствующего маршрута сервера, и поэтому возвращается ошибка 404 Not Found. Это может быть особенно проблематично, если пользователи ожидают появления определенного контента при обновлении.

import { BrowserRouter as Router, Route, Switch } from "react-router-dom";

const App = () => (
  <Router>
    <Switch>
      <Route exact path="/" component={Home} />
      <Route path="/about" component={About} />

      {/* Page Not Found */}
      <Route render={() => (<h1>Page not found</h1>)} />

    </Switch>
  </Router>  
);

// Строка 1: Эта строка импортирует компоненты BrowserRouter, Route и Switch из библиотеки react-router-dom.

// Строка 3: Эта строка определяет функцию App, которая возвращает код JSX.

// Строка 5: Эта строка заключает весь код JSX в компонент Router из react-router-dom.

// Строка 6: Эта строка содержит все маршруты в компоненте Switch из react-router-dom.

// Строки 7–9: Эти строки определяют два маршрута для '/' и '/about' соответственно с соответствующими компонентами (Home и About).

// Строки 11 – 12: Эти строки определяют маршрут, когда другие маршруты не совпадают, что отображает тег h1, говорящий «Страница не найдена».

Страница не найдена ошибка

Ошибка «Страница не найдена» в React Router — это ошибка, которая возникает, когда пользователь пытается получить доступ к несуществующей странице или маршруту. Это может произойти, если пользователь неправильно набрал URL-адрес или если страница, к которой он пытается получить доступ, была удалена или перемещена. В React Router эта ошибка обрабатывается с помощью компонента render prop и передача функции, которая возвращает страницу 404. Это позволяет разработчикам создавать собственные страницы 404 с любым содержимым, например полезными ссылками или сообщением с извинениями.

Как мне справиться со страницей, не найденной в реагирующем маршрутизаторе

При использовании React Router вы можете обработать ненайденную страницу, создав собственный маршрут, который будет отображать компонент NotFound, когда URL-адрес не соответствует ни одному из существующих маршрутов. Для этого вам нужно создать новый маршрут с указанием пути «*» и отобразить ваш компонент NotFound.

Например:

} />

Это будет соответствовать любому URL-адресу, который еще не соответствует существующему маршруту, и отобразит ваш компонент NotFound.

Как заставить реагирующую страницу перезагрузиться

В React Router вы можете принудительно перезагрузить страницу, используя метод replace для объекта истории. Это заменит текущую запись в стеке истории новой, что приведет к перезагрузке страницы. Чтобы использовать этот метод, вам нужно сначала получить доступ к объекту истории. Вы можете сделать это, передав его как реквизит при создании компонента маршрутизатора:

const AppRouter = () => (

{/* Здесь ваши маршруты */}

);

Получив доступ к объекту истории, вы можете использовать его метод замены следующим образом:

history.replace('/some-route');

Похожие посты:

Оставьте комментарий