Как стать автором
Обновить

Комментарии 5

добавил поддержку хуков useHistory

этот hoc убрали в react-router v6

возможно, вы имели ввиду, useNavigation?

Нет, там я имел ввиду именно useHistory, который дополнил HOC withRouter.

А теперь да, useHistory по сути заменен на useNavigate, это я написал в следующем абзаце.

Жаль, что создатели не дают ссылку на новую документацию для последней версии на v5 - она первая высвечивается в Google

А что-то можешь порекомендовать, чтобы не писать урлы строками, а держать их в константах?

Всегда смущает написание вида:

 <Routes>
   <Route path="/" element={<Home />} />
   <Route path="users" element={<Users />}>
     <Route path="me" element={<OwnUserProfile />} />
   </Route>
 </Routes>
 
 // `/users/me` - прописывается руками
 <Link to="/users/me">My Profile</Link>

Есть неплохой шанс ошибки + дополнительные хлопоты при переименовании

Как решение, видится объект с константами, но есть сложности, с тем, что в Link урлы указываются абсолютные, а во вложенных Route - относительные. И для этого нужно написать свой генератор роутов. И кажеться странным, что такого функционала нет в роутерах

Как то сталкивался с этой проблемой?

Добрый день, не знаю поможет вам или нет, но в новой версии появился хук useRoutes который съедает конфиг

import * as React from "react";
import { useRoutes } from "react-router-dom";

function App() {
  let element = useRoutes([
    {
      path: "/",
      element: <Dashboard />,
      children: [
        {
          path: "messages",
          element: <DashboardMessages />
        },
        { path: "tasks", element: <DashboardTasks /> }
      ]
    },
    { path: "team", element: <AboutPage /> }
  ]);

  return element;
}

https://reactrouter.com/docs/en/v6/api#useroutes

Зарегистрируйтесь на Хабре, чтобы оставить комментарий