Ошибка useLocation() появляется при использовании requireAuth

Я использую маршрутизатор реакции с набором реакции-аутентификации, теперь в моем app.js


Как вы можете видеть, я использую RequireAuth, чтобы требовать аутентификацию в моем приложении перед доступом к домашним ссылкам.

Это мой Home.jsx

      import Nav from "../components/Nav";
import AddPr from "../components/Add_PR";
import GetPr from "../components/Get_PR";
import PRDetails from "../components/Pr_Details";
import { Routes, Route } from "react-router-dom";

const Home = () => {
  return (
    <div className="">
      <Nav />
      <div className="w-full pt-10 p-16 h-screen">
        <Routes>
          <Route path="/" exact element={<GetPr />} />
          <Route path="/pr-add" element={<AddPr />} />
          <Route path="/pr-details/:id" element={<PRDetails />} />
        </Routes>
      </div>
    </div>
  );
};

export default Home;

Но почему я получаю эту ошибку:

      useLocation() may be used only in the context of a <Router> component.

Кажется, я не могу найти решения своей проблемы, я уже обернул свое приложение с помощью BrowserRouter.

      import Home from "./pages/Home";
import Login from "./pages/Login";
import { Routes, Route, useLocation } from "react-router-dom";
import { RequireAuth } from "react-auth-kit";

function App() {
  const location = useLocation();
  return (
    <Routes location={location} key={location.pathname}>
      <Route
        exact
        path="*"
        element={
          <RequireAuth loginPath="/log-in">
            <Home />
          </RequireAuth>
        }
      />
      <Route path="/log-in" element={<Login />} />
    </Routes>
  );
}

export default App;

И я заметил одну вещь: ошибка возникает только тогда, когда я добавил сюда тег RequireAuth.

       <Route
        exact
        path="*"
        element={
          <RequireAuth loginPath="/log-in">
            <Home />
          </RequireAuth>
        }
      />

0 ответов

Другие вопросы по тегам