Форум программистов, компьютерный форум, киберфорум
React/ReactJS
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
0 / 0 / 0
Регистрация: 26.09.2020
Сообщений: 28

Не срабатывает ErrorPage на вложенных маршрутах React Router 6

29.05.2024, 10:49. Показов 639. Ответов 5

Студворк — интернет-сервис помощи студентам
Здравствуйте, не могу понять почему ErrorPage рендерится только на маршрутах типа /wafhawkkl, а на вложенных типа /login/awhjkl и тд не работает (просто пустая страница...).

JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
import * as React from 'react';
import { BrowserRouter, Routes, Route } from 'react-router-dom';
import { ErrorPage } from '../../pages/ErrorPage/ErrorPage';
import { MainPage } from '../../pages/MainPage/MainPage';
import { RegistrationPage } from '../../pages/RegistrationPage/RegistrationPage';
import { LoginPage } from '../../pages/LoginPage/LoginPage';
import { Layout } from '../../components/visual/layout/Layout';
import { ProtectedRoute } from './ProtectedRoute/ProtectedRoute';
import { ProfilePage } from '../../pages/ProfilePage/ProfilePage';
 
export const AppRouter = () => {
  const [modalContent, setModalContent] = React.useState<React.ReactNode>(null);
  const [showModal, setShowModal] = React.useState(false);
 
  const openModal = (content: React.ReactNode) => {
    setModalContent(content);
    setShowModal(true);
  };
 
  const closeModal = () => {
    setShowModal(false);
  };
 
  return (
    <BrowserRouter>
      <Routes>
        <Route
          path="/"
          element={<Layout openModal={openModal} closeModal={closeModal} showModal={showModal} modalContent={modalContent} />}
        >
          <Route index element={<MainPage openModal={openModal} />} />
          <Route
            path="registration"
            element={
              <ProtectedRoute openModal={openModal} closeModal={closeModal}>
                <RegistrationPage openModal={openModal} />
              </ProtectedRoute>
            }
          />
          <Route
            path="login"
            element={
              <ProtectedRoute openModal={openModal} closeModal={closeModal}>
                <LoginPage openModal={openModal} />
              </ProtectedRoute>
            }
          />
          <Route
            path="profile"
            element={
              <ProtectedRoute openModal={openModal} closeModal={closeModal}>
                <ProfilePage openModal={openModal} />
              </ProtectedRoute>
            }
          />
        </Route>
        <Route path="*" element={<ErrorPage />} />
      </Routes>
    </BrowserRouter>
  )
};
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
29.05.2024, 10:49
Ответы с готовыми решениями:

Не переходит по страницам TS React react-router
Здравствуйте, не могу понять в чём моя проблема почему у меня не переходит со страницы Главная на страницу Настройки аккаунта. Вроде всё...

Несовместимость React-Router и React-Bootstrap
Добрый день, Пишу маленький проект и в качестве дизайна решил использовать React-Bootstrap. При создании Навигации сайта использовал...

Проблема с React Router
Здравствуйте, уважаемые форумчане! Столкнулся со следующей проблемой. Из главного App вызываю так: import { Switch, Route, Router }...

5
Эксперт JSЭксперт HTML/CSS
 Аватар для krvsa
3834 / 1678 / 431
Регистрация: 14.03.2022
Сообщений: 4,235
29.05.2024, 12:17
Один из вариантов - поднять
Цитата Сообщение от Forlock Посмотреть сообщение
JavaScript
1
<Route path="*" element={<ErrorPage />} />
На самый "верх".
0
0 / 0 / 0
Регистрация: 26.09.2020
Сообщений: 28
01.06.2024, 15:16  [ТС]
Не помогло
0
Эксперт JSЭксперт HTML/CSS
 Аватар для krvsa
3834 / 1678 / 431
Регистрация: 14.03.2022
Сообщений: 4,235
01.06.2024, 21:17
Цитата Сообщение от Forlock Посмотреть сообщение
JavaScript
1
<Route path="*" element={<ErrorPage />} />
Должен быть "внутри"
Цитата Сообщение от Forlock Посмотреть сообщение
JavaScript
1
<Route path="\" ...> ... </Route>
0
0 / 0 / 0
Регистрация: 26.09.2020
Сообщений: 28
02.06.2024, 11:11  [ТС]
Я и так пробовал, и снаружи... Не помогает... Голова кругом, столько форумов и туториалов перечитал...
0
Молодой техлид)
Эксперт JSЭксперт HTML/CSS
 Аватар для mr_dramm
1818 / 1056 / 329
Регистрация: 17.07.2021
Сообщений: 2,147
Записей в блоге: 14
02.06.2024, 12:45
Forlock, покажите компонент ProtectedRoute,

Я сделал демку по базовому примеру, в правом верхнем углу предпросмотре страницы нажми кнопку со стрелкой откроется пример на домене 3 третьего уровня, для эксперементов с роутером

JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
      <Routes>
        <Route path="/" element={<Layout />}>
          <Route index element={<Home />} />
          <Route path="about" element={<About />} />
          <Route path="dashboard" element={<Dashboard />} />
 
          {/* Using path="*"" means "match anything", so this route
                acts like a catch-all for URLs that we don't have explicit
                routes for. */}
          <Route path="*" element={<NoMatch />} />
        </Route>
      </Routes>
пути типа about/232323 перехватываются NoMatch

Не по теме:

- модальное окно можно вынести в одельный компонент и общаться с ним через контекст, не нежно будет в каждый компонент через пропсы прокидывать, и обновления родительского компонента, избежим лишний раз

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
02.06.2024, 12:45
Помогаю со студенческими работами здесь

JS React Router Redux
Всем доброго времени суток. Я программист VBA и недавно стал изучать JS. Помогите разобраться с кашей в голове после изучения React и...

ExpressJS + React-router
Сервер: app.use(&quot;/&quot;, express.static(path.join(__dirname, &quot;../client/build&quot;))); app.use(&quot;/admin&quot;, express.static(path.join(__dirname,...

React-router-dom
Доброго времени суток, у меня есть &lt;Route /&gt; который отрабатывает по пути &quot;path=&quot;/product&quot;&quot;. Мне надо что бы Route отрабатывал по...

React router dom v6
root.render( &lt;BrowserRouter&gt; &lt;div className=&quot;bg-gray-800 absolute h-full w-full&quot;&gt; &lt;Routes&gt; &lt;Route path=&quot;/&quot;...

Routing react-router-dom
Здравствуйте столкнулся с проблемой при создании дочерних страниц вот так вот делаю Route &lt;Route path=&quot;/category&quot;...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2). Унарный минус обозначается как ! */ #include <iostream> #include <stack> #include <cctype>. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru